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

时间:2014-02-09 09:33:18

标签: 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();
    };

也许关于bootbox代码的事情正在阻碍?

3 个答案:

答案 0 :(得分:5)

您可以注册设置焦点的shown事件处理程序(由@Shiny建议)。但是,从Bootstrap 3和Bootbox v4.x.x开始,显示的事件是命名空间,必须使用完全限定名称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();
});

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

答案 1 :(得分:1)

您可以尝试此代码

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',function(){
    $("#pin_code").focus();
});

答案 2 :(得分:0)

我知道它已经很旧了,但是请检查一下是否在使用Chrome,是否没有打开开发工具。