我已经设置了一个带有表单的引导模式,我只是注意到当我按下 Enter 键时,模式会被关闭。有没有办法在按 Enter 时不关闭它?
我尝试使用键盘激活模式:false,但这只能防止使用 ESC 键解除。
我已经设置了一个带有表单的引导模式,我只是注意到当我按下 Enter 键时,模式会被关闭。有没有办法在按 Enter 时不关闭它?
我尝试使用键盘激活模式:false,但这只能防止使用 ESC 键解除。
我也刚遇到这个问题。
我的问题是我的模态中有一个关闭按钮
<button class="close" data-dismiss="modal">×</button>
在输入字段中按 enter 会导致此按钮被触发。我改为将其更改为锚点,它现在按预期工作(输入提交表单并且不关闭模式)。
<a class="close" data-dismiss="modal">×</a>
在没有看到您的消息来源的情况下,我无法确认您的原因是相同的。
只需将type="button"属性添加到按钮元素,一些浏览器默认将类型解释为提交。
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Attributes
这适用于您在模式中拥有的所有按钮。
<button type="button" class="close" data-dismiss="modal">×</button>
即使从我的引导模式中删除所有按钮后我也遇到了这个问题,所以这里的解决方案都没有帮助我。
我发现如果您在键盘焦点位于文本字段上时按 Enter 键,则具有单个文本字段的表单会导致浏览器执行表单提交(并导致关闭)。这似乎更像是浏览器/表单问题,而不是 Bootstrap 的任何问题。
我的解决方案是将表单的 onsubmit 属性设置为 onsubmit="return false"
如果您实际使用提交事件,这可能是一个问题,但我使用的是生成 AJAX 请求而不是浏览器提交的 JS 框架,所以我更喜欢完全禁用提交。(这也意味着我不必手动调整每个可能触发提交的表单元素)。
此处的更多信息:具有单个文本输入字段的引导模式对话框始终在 Enter 键上关闭
您可以将登录按钮放在取消按钮之前,这也可以解决您遇到的问题。
<div class="modal-footer">
<button type="submit" class="btn primary">Login</button>
<button type="submit" class="btn" data-dismiss="modal">Cancel</button>
</div>
我有同样的问题,我解决了
<form onsubmit="return false;">
但还有另一种解决方案,您可以添加虚拟不可见输入,因此您的表单如下所示:
<form role="form" method="post" action="submitform.php">
<input type="text" id="name" name="name" >
<input type="text" style="display: none;">
</form>
我刚才也有类似的经历,我解决的方法不是使用标签,而是将标签更改为 type="button" 的标签。这似乎解决了按下“回车”键并关闭引导模式的问题。
我也有这个问题,我用这种方式解决了。我在表单中添加了 onsubmit。我还希望能够使用回车键作为保存键,所以我在 onsubmit 中添加了 save_stuff() javascript。返回假;用于防止表单提交。
<form onsubmit="save_stuff(); return false;">
...
</form>
<script>
function save_stuff(){
//Saving stuff
}
</script>