如何在Twitter Bootstrap模式中启用转义键关闭功能?

per*_*nce 130 twitter-bootstrap

我按照主要文档页面上Twitter Bootstrap模式的说明
使用了所data-keyboard="true"提到的语法,但是转义键没有关闭模态窗口.
还有什么我想念的吗?

码:

<a href="#my-modal" data-keyboard="true" data-toggle="modal">Open Modal</a>

<div class='modal fade hide' id='my-modal'>
  <div class='modal-body'>
    <div>Test</div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

Cra*_*gor 292

看起来这是如何绑定keyup事件的问题.

您可以将tabindex属性添加到模态以解决此问题:

tabindex="-1"
Run Code Online (Sandbox Code Playgroud)

所以你的完整代码应如下所示:

<a href="#my-modal" data-keyboard="true" data-toggle="modal">Open Modal</a>

<div class='modal fade hide' id='my-modal' tabindex='-1'>
    <div class='modal-body'>
    <div>Test</div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

有关更多信息,您可以在github上查看有关此问题的讨论

(更新了新TWBS存储库的链接)

  • Repo移动,问题现在在https://github.com/twbs/bootstrap/issues/4663 (4认同)
  • 这虽然可以防止输入字段的自动对焦. (3认同)
  • 如果从多个位置调用对话框,还可以将数据键盘属性附加到div.modal(并在调用者中省略). (3认同)
  • 正如@nrek 在下面指出的那样-默认情况下 close with escape 为 true,因此您并不严格需要 `data-keyboard="true"` - 启用该行为的是 `tabindex="-1"` (2认同)

den*_*bot 22

如果你通过javascript调用,请使用:

$('#myModal').modal({keyboard: true}) 
Run Code Online (Sandbox Code Playgroud)

  • 这曾经是你唯一要做的事情,但现在你还需要确保你的div有一个'tabindex =" - 1"'属性. (14认同)
  • 我只需要设置选项卡索引。 (2认同)

小智 12

tabindex="-1"属性添加到模态div

<div id="myModal" class="modal fade" role="dialog" tabindex="-1">

</div>
Run Code Online (Sandbox Code Playgroud)