专注于字段在引导箱回调中不起作用

Focus on field doesn't work in a bootbox callback

我有一个字段和一个 "check" 按钮,用于检查该字段是否为空。问题是在弹出窗口中点击 'Ok' 之后(我使用的是 bootbox),它没有聚焦该字段。

我试过 document.getElementById("field").focus();$('#field').focus(); 但它不起作用

http://jsfiddle.net/b4y40q5h/

谢谢

在下面编写脚本:

DEMO HERE

$(document).on('hidden.bs.modal','.bootbox', function () {
   $('#field').focus();
});

插件,点击"ok"后,修改dom,失去焦点,只需要超时即可:jsFiddle.

$("#btnCheck").click(function () {
    if ($('#field').val() == "")
    {
        bootbox.dialog({
            message: "empty field",
            title: 'my site',
            buttons: {
                danger: {
                    label: 'ok',
                    className: "btn-primary",
                     callback: function () {
                         setTimeout(function(){
                             $('#field').focus();
                         }, 10);
                     }
                }
            }
        });
    }
else
    alert('ok');
});

另一种方法是使用 setTimeout。我做到了,但由于某种原因没有奏效,但现在可以了!天知道为什么!

callback: function () {
    setTimeout(function () {
        console.log("F");
        $("#field").focus();
    }, 150);
}

Fiddle: http://jsfiddle.net/praveenscience/Lcv4c5ab/1/