打开模态时,如何将按钮聚焦在模态内

时间:2015-09-12 06:22:56

标签: javascript jquery html twitter-bootstrap

当调用模态弹出窗口时,我需要关注模态上的第一个按钮 该按钮动态附加到模态页脚

var difVal = ( totalAmnt - payAble ).toFixed(2);         
$('#chqMsgContent').html( 'Total Diffrent than the Recive Amount. ( ' + difVal + ' )</br> (Please type manually for over payment) ');        
$('#myModal').modal('show');
$('.modal-dialog').css('width', '350');     
var btnsForModl = '<input type="button" class="btn  btn-xs ok" id="okDif" data-dismiss="modal" value="Ok" data-value="Cash" /> ';       
$('.modal-footer').html(btnsForModl);   

$('#okDif').focus();                

$('#okDif').focus();没有比我在

上尝试过的更有效
$('#myModal').on('shown', function () {
     alert($('#okDif').val());
     $('#okDif').focus();
}); 

这两种方法都不起作用,但弹出窗口工作正常。

JSFiddle demo

2 个答案:

答案 0 :(得分:2)

您需要为focus命令添加一个稍微的超时,否则它会在元素出现之前触发。

这有效:

(Class<Outer<Integer>>)(Class<?>)Outer.class

<强> DEMO

答案 1 :(得分:1)

模态中的任何内容最初都是隐藏,因此input元素(作为隐藏)无法启用焦点
如果你不需要动画模态,你可以简单地删除模态的fade类,以便在你调用.modal('show')后立即看到模态内容点。
JSFiddle

您尝试过的另一个选项无法正常工作,因为bootstrap 模态没有名为shown的事件。
它有一个shown.bs.modal事件:

$('#myModal').on('shown.bs.modal', function(e){
    $('#okDif').focus();
});

JSFiddle