【问题标题】:Bootbox.prompt() set focus on text fieldBootbox.prompt() 将焦点设置在文本字段上
【发布时间】:2014-02-09 09:33:18
【问题描述】:

我似乎无法自动将焦点设置在 Bootbox 的文本字段上。

这是我的代码: 函数 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 的代码有问题?

【问题讨论】:

  • 也许你应该接受正确的答案...

标签: javascript focus bootbox


【解决方案1】:

您可以注册一个设置焦点的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 后对话框不立即可见。不可见的元素无法获得焦点。

【讨论】:

    【解决方案2】:

    你可以试试这个代码

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

    【讨论】:

      【解决方案3】:

      我知道这是旧的,但请检查如果您使用的是 Chrome,您没有打开开发工具。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-01-23
        • 2011-11-23
        • 2011-02-25
        • 1970-01-01
        • 1970-01-01
        • 2016-05-23
        • 1970-01-01
        相关资源
        最近更新 更多