【问题标题】: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,您没有打开开发工具。