javascript - 自动对焦在来自 AJAX 的动态内容的文本框中不起作用

标签 javascript jquery html ajax twitter-bootstrap

我在 JS 中创建了一个函数,它通过 AJAX 获取 HTML 内容并将其放入 Bootstrap 对话框中。

现在我已经将 autofocus 属性添加到动态 HTML 中的输入框。问题是我在输入框上看到了一段时间的焦点,然后它就消失了。

JS代码:

function getPage(userid) {
    $.ajax({
        type: 'POST',
        url: PAGE_URL,
        data: {'userid':userid},
        success: function (data) {
            changeDialogContent(data);
        },
        error: function (e, textStatus) {
            alert('Error occured while processing your request');
        }
    });
}

changeDialogContent 函数只是将动态内容作为 HTML 添加到对话框。

var bootstrapmodal=$('#modelDiv');
function changeDialogContent(content) {
    bootstrapmodal.html(content);
}   

输入的HTML代码:

<input type="text" class="form-control input-sm someInputBox" autofocus="autofocus" value="0" placeholder="Enter Name"/>

我也试过在将 HTML 内容设置到 Bootstrap 对话框之后添加 $('.someInputBox').focus();,但也不走运。

我遗漏了什么重要的东西吗?

最佳答案

这是我认为与您的目标类似的 php 代码..

测试.php:

<?php
        echo '<input id="my-input" type="text" class="form-control input-sm someInputBox" autofocus="autofocus" value="0" placeholder="Enter Name"/>';

?>

HTML 和 JAVASCRIPT 代码:

 <html>
    <head>
        <script src = "bower_components/jquery/dist/jquery.js"></script>
        <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.css">

        <script>


            function getPage() {
                $.ajax({
                    type: 'POST',
                    url: "test.php",
                    data: {},
                    success: function (data) {
                        changeDialogContent(data);
                            document.getElementById("my-input").focus();
                    },
                    error: function (e, textStatus) {
                        alert('Error occured while processing your request');
                    }
                });
            }
            function changeDialogContent(content) {
                $('#modelDiv').html(content);
            }   

        </script>
    </head>
    <body onload="getPage()">
        <div id = "modelDiv" class="col-md-3 col-md-offset-4">
        </div>
    </body>
</html>

我用的是bower所以jquery和bootstrap的源码路径不是cdn。 而且这段代码工作得很好..我没有遇到任何错误。 很抱歉我无法提供 fiddle ,因为它有服务器请求和响应。所以我在自己的机器上测试了它。

如果我误解了什么,请纠正我。

关于javascript - 自动对焦在来自 AJAX 的动态内容的文本框中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37675318/

相关文章:

javascript - 如何仅在javascript中为 'a'时删除句子的最后一个字符

jquery - 如何在打印文档时隐藏工具提示

javascript - 加载 cometd /服务器推送 XMLHttpRequest 时停止浏览器 “throbber of doom”

python - TypeError ("' NoneType'对象没有属性 '__getitem__'“,)

php - 如何将按钮值发布到 PHP?

javascript - 如何在每个页面上动态突出显示菜单项?

JavaScript - 悬停时的工具提示 div

javascript - 具有相同功能的多种表单验证

javascript - 这个数据可视化代码有什么问题?

javascript - Backbone.js - Todo Collection - 这个返回语句中到底发生了什么?