无法将jQuery load()用于模式

无法将jQuery load()用于模式,jquery,modal-dialog,load,focus,Jquery,Modal Dialog,Load,Focus,我正在使用jQuery load()添加一个包含表单的模式。任何聚焦第一个字段的尝试都失败了。我的代码如下所示: 文件foo.html包含: <div id='standardModal' class='modal fade' role='dialog'> <div class='modal-dialog'> <div class='modal-content'> <div id='standardModa

我正在使用jQuery load()添加一个包含表单的模式。任何聚焦第一个字段的尝试都失败了。我的代码如下所示:

文件foo.html包含:

<div id='standardModal' class='modal fade' role='dialog'>
    <div class='modal-dialog'>
        <div class='modal-content'>
            <div id='standardModalBody' class='modal-body'>
                <form id='addRecord'>
                    <div class='form-group' id='intTypeD'>
                        <label for='intType'>Type</label>
                        <input type='text' class='form-control' id='intType'>
                        <small id='intTypeM' class='text-danger'></small>
                    </div>
                </form>
        </div>
    </div>
</div>
不,我想补充一下

$('#addRecord input:text, #addRecord textarea').first().focus();


加载完成时调用的函数开头的右侧和模态('show')-但所有4个变体似乎都没有任何效果。

此处无需使用JQuery,您只需使用HTML即可

<input type='text' class='form-control' id='intType' autofocus>

您的代码在这里似乎运行良好

$(文档).ready(函数(){
$(“#addRecord输入:文本,#addRecord文本区域”).first().focus();
});

类型

您的模式需要一些时间打开,浏览器需要一些时间回流,尤其是在有转换时。因此,您可以使用一个简单的
setTimeout
,或者更好地使用您的模式插件提供的事件,在一定时间后设置焦点

在您的
。始终
-假设您使用的是引导模式(如果不是,请另外指定):

此外,以下是参考资料:

根据HTML5如何定义其语义,autofocus HTML属性 在引导模态中没有效果。要达到相同的效果,请使用 一些自定义JavaScript


如果这也不起作用,您应该改变策略:在主页中保留一个空模式的存根,然后使用ajax请求只填充内容
div
。这样,事件处理程序和所有其他插件都可以在主页上使用

谢谢大家,这很有效:

$('#standardModal').on('shown.bs.modal', function () {
  $('#intType').trigger('focus')
}) 
奇怪的是,我以为我已经通过在调试器中等待来解决了这个可能的问题,但很明显,情况不同

autofocus在大多数浏览器上都有问题,这就是我开始使用jQuery选项的原因

再次感谢,案件已结案

<input type='text' class='form-control' id='intType' autofocus>
$('#standardModal').on('shown.bs.modal', function () {
  $('#intType').trigger('focus')
}) 
$('#standardModal').on('shown.bs.modal', function () {
  $('#intType').trigger('focus')
})