Bootbox.prompt()将焦点设置在文本字段上

Bro*_*iLD 2 javascript focus bootbox

我似乎无法自动将焦点集中在Bootbox的文本字段上.

这是我的代码:function setCode(myCode){

    bootbox.confirm("Enter your PIN: <input id='pin_code' type='password' name='pin_code'></input>", 
            function(result) {
                if(result)
                console.log($("#pin_code").val());
            });
        $("#pin_code").focus();
    };
Run Code Online (Sandbox Code Playgroud)

关于bootbox的代码可能会受到影响吗?

Jef*_*ger 5

您可以注册一个shown设置焦点的事件处理程序(由@Shiny建议).但是,从Bootstrap 3和Bootbox v4.xx开始,显示的事件是命名空间,必须使用完全限定名称shown.bs.modal来注册事件处理程序.所以代码是:

var box = bootbox.confirm("Enter your PIN: <input id='pin_code' type='password' name='pin_code'></input>", 
    function(result) {
        if(result)
        console.log($("#pin_code").val());
    });

box.on('shown.bs.modal',function(){
  $("#pin_code").focus();
});
Run Code Online (Sandbox Code Playgroud)

尝试按原样设置焦点不起作用,因为在调用后对话框不会立即可见bootbox.confirm.不可见的元素无法聚焦.