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 相关文章推荐
ajax的hide隐藏问题解决方法
Dec 11 Javascript
javascript的回调函数应用示例
Feb 20 Javascript
JS调用页面表格导出excel示例代码
Mar 18 Javascript
jQuery的animate函数学习记录
Aug 08 Javascript
javascript实现禁止复制网页内容
Dec 16 Javascript
js实现的二分查找算法实例
Jan 21 Javascript
使用jQuery制作基础的Web图片轮播效果
Apr 22 Javascript
js基于cookie方式记住返回页面用法示例
May 27 Javascript
详细讲解vue2+vuex+axios
May 27 Javascript
阿里大于短信验证码node koa2的实现代码(最新)
Sep 07 Javascript
AngularJs返回前一页面时刷新一次前面页面的方法
Oct 09 Javascript
JavaScript中的执行环境和作用域链
Sep 04 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数组中的重复值的实现代码
2011/07/17 PHP
分享PHP函数实现数字与文字分页代码
2015/07/28 PHP
浅谈PHP中foreach/in_array的使用
2015/11/02 PHP
thinkphp3.2.3 分页代码分享
2016/07/28 PHP
php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)
2017/02/04 PHP
php中文乱码问题的终极解决方案汇总
2017/08/01 PHP
Nigma vs Alliance BO5 第一场2.14
2021/03/10 DOTA
限制文本框输入N个字符的js代码
2010/05/13 Javascript
JQuery为textarea添加maxlength属性并且兼容IE
2013/04/25 Javascript
当前页禁止复制粘贴截屏代码小集
2013/07/24 Javascript
jQuery无刷新切换主题皮肤实例讲解
2015/10/21 Javascript
Bootstrap和Angularjs配合自制弹框的实例代码
2016/08/24 Javascript
关于jQuery中fade(),show()起始位置的一点小发现
2017/04/25 jQuery
微信JSSDK调用微信扫一扫功能的方法
2017/07/25 Javascript
Angular4学习笔记之准备和环境搭建项目
2017/08/01 Javascript
利用Vue实现移动端图片轮播组件的方法实例
2017/08/23 Javascript
浅谈Vue render函数在ElementUi中的应用
2018/09/06 Javascript
js实现简单的无缝轮播效果
2020/09/05 Javascript
[01:23]一分钟告诉你 DOTA2为什么叫信仰2
2014/06/20 DOTA
[01:31](回顾)杀出重围,决战TI之巅
2014/07/01 DOTA
python正则表达式match和search用法实例
2015/03/26 Python
python 调用c语言函数的方法
2017/09/29 Python
Pytorch之Variable的用法
2019/12/31 Python
python读取文件指定行内容实例讲解
2020/03/02 Python
python中数据库like模糊查询方式
2020/03/02 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
2020/04/07 Python
Pytorch 使用CNN图像分类的实现
2020/06/16 Python
如何写出高性能的JSP和Servlet
2013/01/22 面试题
高中军训第一天感言
2014/03/06 职场文书
最美护士演讲稿
2014/08/27 职场文书
停车场管理协议书范本
2014/10/08 职场文书
员工自我工作评价
2015/03/06 职场文书
2015年科室工作总结
2015/04/10 职场文书
2015年行风建设工作总结
2015/05/15 职场文书
python中os.path.join()函数实例用法
2021/05/26 Python
Java数据开发辅助工具Docker与普通程序使用方法
2021/09/15 Java/Android