在显示的模态中有一个表单。如果我聚焦在输入字段(任何字段)上并按ESC键,该模态将隐藏。但是,如果我不聚焦在表单字段上,则按ESC键不会关闭模态。这是怎么回事?
我想完全禁用模态的ESC键功能。我尝试了以下方法:
$(document).on('keypress', function(e) {
if(e.keyCode == 27) {
e.preventDefault();
return false;
}
}
但这并不影响任何东西,有没有办法完全禁用模态的ESC键?
在显示的模态中有一个表单。如果我聚焦在输入字段(任何字段)上并按ESC键,该模态将隐藏。但是,如果我不聚焦在表单字段上,则按ESC键不会关闭模态。这是怎么回事?
我想完全禁用模态的ESC键功能。我尝试了以下方法:
$(document).on('keypress', function(e) {
if(e.keyCode == 27) {
e.preventDefault();
return false;
}
}
但这并不影响任何东西,有没有办法完全禁用模态的ESC键?
8条答案
按热度按时间llew8vvj1#
通过添加
data-keyboard="false"
解决了该问题。大概是这样的
<div class="modal hide fade" data-keyboard="false" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
juud5qan2#
Twitter的Bootstrap modal.js(见http://getbootstrap.com/2.3.2/javascript.html#modals)本身有键盘真或假布尔值。你可以使用下面的脚本避免在模态之外按转义键和点击:
工作演示:
x一个一个一个一个x一个一个二个x
zd287kbt3#
如果模式对话框如下所示
删除**tabindex="-1”**应禁用Escape键。
4dc9hkyq4#
您需要
data-keyboard="false"
和data-backdrop="static"
工作演示:
8gsdolmq5#
将键盘值设置为false!
示例:
或者,如果您使用JavaScript:
whhtz7ly6#
$('# myModal').模态({显示:真,键盘:错误});
g6ll5ycj7#
使用Bootstrap 5,您需要添加:
see https://getbootstrap.com/docs/5.0/components/modal/#static-backdrop
r7knjye28#
您可以通过向其添加ID并简单地删除输入的keydown事件来定位特定输入,如下所示:
JS系统
此示例使用Enter键。