专注于字段并不适用于bootbox回调

时间:2015-06-05 08:50:22

标签: jquery bootbox

我有一个字段和一个"检查"检查字段是否为空的按钮。问题是在点击“确定”之后在弹出窗口(我使用bootbox)中,它并不专注于该领域。

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

http://jsfiddle.net/b4y40q5h/

谢谢

3 个答案:

答案 0 :(得分:2)

在下面写下这个脚本:

<强> DEMO HERE

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

答案 1 :(得分:2)

插件在点击“确定”后,修改了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');
});

答案 2 :(得分:1)

另一种方式是,使用setTimeout。我做到了,但它没有用的原因,但现在它的工作原理!上帝只知道为什么!

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

小提琴:http://jsfiddle.net/praveenscience/Lcv4c5ab/1/