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 子窗体父窗体相互传值方法
May 31 Javascript
jQuery数据显示插件整合实现代码
Oct 24 Javascript
jquery1.9 下检测浏览器类型和版本的方法
Dec 26 Javascript
Shell脚本实现Linux系统和进程资源监控
Mar 05 Javascript
基于jquery实现左右按钮点击的图片切换效果
Jan 27 Javascript
JS实现把鼠标放到链接上出现滚动文字的方法
Apr 06 Javascript
扩展jquery easyui tree的搜索树节点方法(推荐)
Oct 28 Javascript
JavaScript无阻塞加载和defer、async详解
Feb 26 Javascript
vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)
Jul 11 Javascript
JavaScript实现三级级联特效
Nov 05 Javascript
微信小程序实现获取准确的腾讯定位地址功能示例
Mar 27 Javascript
如何用JavaScript检测当前浏览器是无头浏览器
Apr 27 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
用javascript实现无刷新更新数据的详细步骤 asp
2006/12/26 Javascript
JS获取父节点方法
2009/08/20 Javascript
Mootools 1.2教程 定时器和哈希简介
2009/09/15 Javascript
动态加载js、css等文件跨iframe实现
2014/02/24 Javascript
jquery实现背景墙聚光灯效果示例分享
2014/03/02 Javascript
jquery中cookie用法实例详解(获取,存储,删除等)
2016/01/04 Javascript
JS中artdialog弹出框控件之提交表单思路详解
2016/04/18 Javascript
浅谈jQuery this和$(this)的区别及获取$(this)子元素对象的方法
2016/11/29 Javascript
Vue.js第二天学习笔记(vue-router)
2016/12/01 Javascript
React操作真实DOM实现动态吸底部的示例
2017/10/23 Javascript
微信小程序实现发红包功能
2018/07/11 Javascript
详解vue-cli中使用rem,vue自适应
2019/05/06 Javascript
微信小程序模板消息推送的两种实现方式
2019/08/27 Javascript
JS继承实现方法及优缺点详解
2020/09/02 Javascript
[01:06]DOTA2亚洲邀请赛专属珍藏-荧煌之礼
2017/03/24 DOTA
Python中的作用域规则详解
2015/01/30 Python
Python将阿拉伯数字转换为罗马数字的方法
2015/07/10 Python
一波神奇的Python语句、函数与方法的使用技巧总结
2015/12/08 Python
python和ruby,我选谁?
2017/09/13 Python
python脚本开机自启的实现方法
2019/06/28 Python
python小程序实现刷票功能详解
2019/07/17 Python
Python高级特性 切片 迭代解析
2019/08/23 Python
python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例
2019/08/27 Python
Python实现代码统计工具
2019/09/19 Python
python实现录屏功能(亲测好用)
2020/03/02 Python
Jupyter notebook设置背景主题,字体大小及自动补全代码的操作
2020/04/13 Python
python调用API接口实现登陆短信验证
2020/05/10 Python
南威尔士家居商店:Leekes
2016/10/25 全球购物
春季运动会广播稿大全
2014/02/19 职场文书
共筑中国梦演讲稿
2014/04/23 职场文书
2014年征兵标语
2014/06/20 职场文书
学校领导班子成员查摆问题及整改措施
2014/10/28 职场文书
幼儿教师辞职信范文
2015/03/02 职场文书
结婚当天新郎保证书
2015/05/08 职场文书
2015年暑假生活总结
2015/07/13 职场文书
校园安全学习心得体会
2016/01/18 职场文书