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 学习之旅 (1)
Feb 05 Javascript
JavaScript中Object和Function的关系小结
Sep 26 Javascript
IE event.srcElement和FF event.target 功能比较
Mar 01 Javascript
js 蒙版进度条(结合图片)
Mar 10 Javascript
js验证电话号码与手机支持+86的正则表达式
Jan 23 Javascript
jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解
Nov 19 Javascript
node.js 和HTML5开发本地桌面应用程序
Dec 13 Javascript
vue中使用echarts制作圆环图的实例代码
Jul 27 Javascript
vue 点击按钮增加一行的方法
Sep 07 Javascript
JavaScript数据结构与算法之二叉树实现查找最小值、最大值、给定值算法示例
Mar 01 Javascript
javascript触发模拟鼠标点击事件
Jun 26 Javascript
微信小程序如何利用getCurrentPages进行页面传值
Jul 01 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 imagecreatetruecolor 创建高清和透明图片代码小结
2010/05/15 PHP
php的日期处理函数及uchome的function_coomon中日期处理函数的研究
2011/01/12 PHP
php设计模式 Builder(建造者模式)
2011/06/26 PHP
PHP中使用foreach()遍历二维数组的简单实例
2016/06/13 PHP
PHP使用finfo_file()函数检测上传图片类型的实现方法
2017/04/18 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
2018/03/02 PHP
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
2018/08/16 PHP
用apply让javascript函数仅执行一次的代码
2010/06/27 Javascript
javascript 学习笔记(一)DOM基本操作
2011/04/08 Javascript
js将long日期格式转换为标准日期格式实现思路
2013/04/07 Javascript
js日期对象兼容性的处理方法
2014/01/28 Javascript
Vue项目中设置背景图片方法
2018/02/21 Javascript
[48:51]完美世界DOTA2联赛PWL S2 Magma vs InkIce 第一场 11.28
2020/12/02 DOTA
Python简单连接MongoDB数据库的方法
2016/03/15 Python
python中pylint使用方法(pylint代码检查)
2018/04/06 Python
Python检测网络延迟的代码
2018/05/15 Python
python正则表达式去除两个特殊字符间的内容方法
2018/12/24 Python
解决yum对python依赖版本问题
2019/07/05 Python
python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析
2020/03/08 Python
css3 transform及原生js实现鼠标拖动3D立方体旋转
2016/06/20 HTML / CSS
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
台湾线上百货零售购物平台:friDay购物
2017/08/18 全球购物
美国时尚大码女装购物网站:Avenue
2019/05/24 全球购物
宿舍保安职务说明书
2014/02/25 职场文书
教师节宣传方案
2014/05/23 职场文书
禁烟标语大全
2014/06/11 职场文书
国际贸易毕业生求职信
2014/07/20 职场文书
单位委托书范本(3篇)
2014/09/18 职场文书
初中重阳节活动总结
2015/05/05 职场文书
大学生实习证明
2015/06/16 职场文书
大学三好学生主要事迹范文
2015/11/03 职场文书
观看安全警示教育片心得体会
2016/01/15 职场文书
2016年大学生社区服务活动总结
2016/04/06 职场文书
解析mybatis-plus中的resultMap简单使用
2021/11/23 Java/Android
Redis命令处理过程源码解析
2022/02/12 Redis
python实现会员管理系统
2022/03/18 Python