Bootstrap 按ESC键无法关闭模态框modal

柔光的暖阳◎ 2022-01-29 10:04 580阅读 0赞

Bootstrap modal插件 按ESC键关闭模态框无效(必须添加属性tabindex方可)

Intro

Bootstrap框架 Modal插件 data-keyboard属性:
在这里插入图片描述
也就是说,模态框默认是可以按下ESC键来关闭的。

Code

  • 使用Emmet语法创建模态框的基本结构:
    div.modal.fade#modalTest>div.modal-dialog>div.modal-content>(div.modal-header+div.modal-body+div.modal-footer)
    生成代码如下:

修改模态框的代码:向div.modal元素添加data-keyboard属性

  1. <button class="btn btn-primary" data-toggle="modal" data-target="#modalTest">模态框测试</button>
  2. <div class="modal fade" id="modalTest" data-keyboard="true">
  3. <div class="modal-dialog">
  4. <div class="modal-content">
  5. <div class="modal-header">header</div>
  6. <div class="modal-body">body</div>
  7. <div class="modal-footer">footer</div>
  8. </div>
  9. </div>
  10. </div>
  • 触发该模态框的按钮
    <button class="btn btn-primary" data-toggle="modal" data-target="#modalTest">模态框测试</button>
  • 测试
    点击按钮,会弹出模态框。
    但,按ESC键并不会关闭模态框。
  • 解决:
    向对应的div.modal元素添加tableindex属性后(值为多少都可以),发现,data-keyboard属性才生效。
    修改data-keyboard属性的值为truefalse,可以控制按下ESC会关闭模态框这个功能。
  • bootstrap中为什么要给modal添加tabindex=-1才能通过tab键在modal中切换焦点
  • tabindex属性规定元素的tab键控制次序(当tab键用于导航时)

HTML

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
  8. <script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script>
  9. <script src="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
  10. <title>Bootstrap-test</title>
  11. </head>
  12. <body>
  13. <button class="btn btn-primary" data-toggle="modal" data-target="#modalTest">模态框测试</button>
  14. <div class="modal fade" id="modalTest" data-keyboard="true" tabindex="0">
  15. <div class="modal-dialog">
  16. <div class="modal-content">
  17. <div class="modal-header">header</div>
  18. <div class="modal-body">body</div>
  19. <div class="modal-footer">footer</div>
  20. </div>
  21. </div>
  22. </div>
  23. </body>
  24. </html>

发表评论

表情:
评论列表 (有 0 条评论,580人围观)

还没有评论,来说两句吧...

相关阅读