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中Function类型详解
Apr 28 Javascript
js实现简洁大方的二级下拉菜单效果代码
Sep 01 Javascript
JavaScript判断表单为空及获取焦点的方法
Feb 12 Javascript
JS实现的在线调色板实例(附demo源码下载)
Mar 01 Javascript
JS实现Select的option上下移动的方法
Mar 01 Javascript
详解angular应用容器化部署
Aug 14 Javascript
Element UI 自定义正则表达式验证方法
Sep 04 Javascript
详解vantUI框架在vue项目中的应用踩坑
Dec 06 Javascript
jquery UI实现autocomplete在获取焦点时得到显示列表功能示例
Jun 04 jQuery
vue 内联样式style中的background用法说明
Aug 05 Javascript
ES6中的Javascript解构的实现
Oct 30 Javascript
如何利用React实现图片识别App
Feb 18 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
php+curl 发送图片处理代码分享
2015/07/09 PHP
PHP编程实现脚本异步执行的方法
2017/08/09 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
用jscript启动sqlserver
2007/06/21 Javascript
javascript脚本编程解决考试分数统计问题
2008/10/18 Javascript
javascript 清空form表单中某种元素的值
2009/12/26 Javascript
JavaScript Event学习第十一章 按键的检测
2010/02/10 Javascript
jquery入门—选择器实现隔行变色实例代码
2013/01/04 Javascript
jQuery动态显示和隐藏datagrid中的某一列的方法
2013/12/11 Javascript
Jquery判断radio、selelct、checkbox是否选中及获取选中值方法总结
2015/04/15 Javascript
JS实现生成会变大变小的圆环实例
2015/08/05 Javascript
js实现的简单图片浮动效果完整实例
2016/05/10 Javascript
轮播的简单实现方法
2016/07/28 Javascript
js中scrollTop()方法和scroll()方法用法示例
2016/10/03 Javascript
JS组件系列之MVVM组件构建自己的Vue组件
2017/04/28 Javascript
JS去掉字符串前后空格、阻止表单提交的实现代码
2017/06/08 Javascript
iscroll实现下拉刷新功能
2017/07/18 Javascript
微信小程序滚动Tab实现左右可滑动切换
2017/08/17 Javascript
浅谈vue中改elementUI默认样式引发的static与assets的区别
2018/02/03 Javascript
angularjs使用gulp-uglify压缩后执行报错的解决方法
2018/03/07 Javascript
JS实现对json对象排序并删除id相同项功能示例
2018/04/18 Javascript
vue-swiper的使用教程
2018/08/30 Javascript
express+vue+mongodb+session 实现注册登录功能
2018/12/06 Javascript
python多行字符串拼接使用小括号的方法
2020/03/19 Python
在VS2017中用C#调用python脚本的实现
2019/07/31 Python
python单向循环链表原理与实现方法示例
2019/12/03 Python
python 画3维轨迹图并进行比较的实例
2019/12/06 Python
使用Python爬虫库requests发送表单数据和JSON数据
2020/01/25 Python
Python RabbitMQ实现简单的进程间通信示例
2020/07/02 Python
Belle Maison倍美丛官网:日本千趣会旗下邮购网站
2016/07/22 全球购物
俄罗斯外国汽车和国产汽车配件网上商店:Движком
2020/04/19 全球购物
财务会计专业毕业生自荐信
2013/10/19 职场文书
学生干部培训方案
2014/06/12 职场文书
财务出纳岗位职责
2015/03/31 职场文书
旅游投诉信范文
2015/07/02 职场文书
2015年国庆节寄语
2015/08/17 职场文书