我有一个Twitter Bootstrap模式,其中包含一个带有jQuery UI Autocomplete的字段 . 当显示自动完成建议菜单时,用户可以按键盘上的ESCAPE关闭它 . 但是,这也会关闭Bootstrap模式,因为它还会侦听按下的ESCAPE键 .
有没有办法阻止模态被关闭,只要自动完成建议菜单被/只是被ESCAPE键关闭?
注意:我不希望完全禁用模态上的转义键行为 - 仅当自动完成菜单打开并通过ESC关闭时 .
您只需要通过JavaScript(Jquery)使用Bootstrap模态属性,这样:
假设你的模态名称是#MyModal,使用它来防止用键盘关闭
$('#myModal').modal({keyboard:false});
看一个实例我在Bootply的下一个例子中创建了一个例子!
问候和快乐的编码
尝试这样的事情 . 让我们 grab 转义键事件和模态隐藏事件:
var isEscapeKey = false; $('#myAutoCompleteTextBox').on('keydown',function(e){ if (e.keyCode == 27){ isEscapeKey = true; } else{ isEscapeKey = false; } }).on('blur',function(){ isEscapeKey = false; }); $('#myModal').on('hide.bs.modal', function (e) { if (isEscapeKey){ return false; } });
未经测试,但理论上应该在隐藏模态之前调用 hide.bs.modal 事件,并且可以在此处停止 .
hide.bs.modal
2 回答
您只需要通过JavaScript(Jquery)使用Bootstrap模态属性,这样:
假设你的模态名称是#MyModal,使用它来防止用键盘关闭
看一个实例我在Bootply的下一个例子中创建了一个例子!
问候和快乐的编码
尝试这样的事情 . 让我们 grab 转义键事件和模态隐藏事件:
未经测试,但理论上应该在隐藏模态之前调用
hide.bs.modal
事件,并且可以在此处停止 .