Bootstrap 模态框多次显示后台提交多次BUG的解决方法


Posted in Javascript onDecember 26, 2017

模态框

Bootstrap 的模态框使用Bootstrap 的前端应该都接触过。

本文记录一下今天使用时遇到的 BUG,以便以后查阅和帮助其他遇到同样问题的伙伴们。

BUG 情景

使用场景

触发展现模态框,填写对应的信息,然后 ajax 提交表单信息到后台。

简化

点击下面的按钮一次,弹出模态框。点击提交,会直接 alert("提交") 。点击一次会觉得很正常,但是如果你重复点几次模态框,会发现再次点击 提交 ,alert 会出现多次。

简书无法展现效果,可参见

代码如下:

<button class="btn btn-info" id="modal-click-error">点击弹出模态框</button>

<div class="modal" tabindex="-1" role="dialog" id="myModal">
 <div class="modal-dialog" role="document">
 <div class="modal-content">
  <div class="modal-header">
  <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
  <h4 class="modal-title">Modal title</h4>
  </div>
  <div class="modal-body">
  <p>One fine body…</p>
  </div>
  <div class="modal-footer">
  <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
  <button type="button" class="btn btn-primary">提交</button>
  </div>
 </div><!-- /.modal-content -->
 </div><!-- /.modal-dialog -->
</div><!-- /.modal -->
$(function() {

 $('#modal-click-error').on('click', function() {
  $('#myModal').modal('show');
  
  $("#myModal .btn-primary").on('click', function() {
   alert("提交");
  });
 });
 
});

问题修复

上述的 js 代码,每次对于按钮的点击都会为提交按钮添加对应事件。修改如下即可:

$(function() {

 $('#modal-click-error').on('click', function() {
  $('#myModal').modal('show');
 });
 
 $("#myModal .btn-primary").on('click', function() {
  alert("提交");
 });
 
});

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript下查找父节点的简单方法
Aug 13 Javascript
javascript eval函数深入认识
Feb 21 Javascript
Javascript Jquery 遍历Json的实现代码
Mar 31 Javascript
javascript新建标签,判断键盘输入,以及判断焦点(示例代码)
Nov 25 Javascript
javascript检测浏览器的缩放状态实现代码
Sep 28 Javascript
JavaScript中的replace()方法使用详解
Jun 06 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
Jan 25 Javascript
BootStrap响应式导航条实例介绍
May 06 Javascript
如何解决IONIC页面底部被遮住无法向上滚动问题
Sep 06 Javascript
Jquery实现跨域异步上传文件总结
Feb 03 Javascript
Jquery滑动门/tab切换实现方法完整示例
Jun 05 jQuery
vue实现移动端拖动排序
Aug 21 Javascript
细说webpack源码之compile流程-入口函数run
Dec 26 #Javascript
Vue 进入/离开动画效果
Dec 26 #Javascript
node.js中路由,中间件,ge请求和post请求的参数详解
Dec 26 #Javascript
Angular实现可删除并计算总金额的购物车功能示例
Dec 26 #Javascript
浅谈React深度编程之受控组件与非受控组件
Dec 26 #Javascript
使用vue实现简单键盘的示例(支持移动端和pc端)
Dec 25 #Javascript
vue的一个分页组件的示例代码
Dec 25 #Javascript
You might like
根德Grundig S400/S500/S700电路分析
2021/03/02 无线电
php代码书写习惯优化小结
2013/06/20 PHP
PHP实现动态删除XML数据的方法示例
2018/03/30 PHP
jquery星级插件、支持页面中多次使用
2012/03/25 Javascript
Moment.js 不容错过的超棒Javascript日期处理类库
2012/04/15 Javascript
实例说明为什么不要行内使用javascript
2014/04/18 Javascript
webapp框架AngularUI的demo改造之路
2014/12/21 Javascript
使用NodeJs 开发微信公众号(三)微信事件交互实例
2016/03/02 NodeJs
判断JS对象是否拥有某属性的方法推荐
2016/05/12 Javascript
Vue2路由动画效果的实现代码
2017/07/10 Javascript
vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)
2017/07/11 Javascript
浅谈vuex 闲置状态重置方案
2018/01/04 Javascript
Nodejs把接收图片base64格式保存为文件存储到服务器上
2018/09/26 NodeJs
vue项目开启Gzip压缩和性能优化操作
2020/10/26 Javascript
haskell实现多线程服务器实例代码
2013/11/26 Python
在Python中操作字典之update()方法的使用
2015/05/22 Python
Ruby使用eventmachine为HTTP服务器添加文件下载功能
2016/04/20 Python
Python if语句知识点用法总结
2018/06/10 Python
python requests.post带head和body的实例
2019/01/02 Python
Python判断对象是否为文件对象(file object)的三种方法示例
2019/04/26 Python
基于Python的Post请求数据爬取的方法详解
2019/06/14 Python
Python求正态分布曲线下面积实例
2019/11/20 Python
Python While循环语句实例演示及原理解析
2020/01/03 Python
英国最好的温室之家:Greenhouses Direct
2019/07/13 全球购物
中学生学习生活的自我评价
2013/10/26 职场文书
计算机专业毕业生自荐信
2013/12/31 职场文书
幼儿园保育员辞职信
2014/01/12 职场文书
水果连锁超市创业计划书
2014/01/24 职场文书
刘胡兰观后感
2015/06/16 职场文书
退休欢送会主持词
2015/07/01 职场文书
2016感恩母亲节校园广播稿
2015/12/17 职场文书
《春酒》教学反思
2016/02/22 职场文书
JavaWeb Servlet实现网页登录功能
2021/07/04 Java/Android
JAVA API 实用类 String详解
2021/10/05 Java/Android
java后台调用接口及处理跨域问题的解决
2022/03/24 Java/Android
Python探索生命起源 matplotlib细胞自动机动画演示
2022/04/21 Python