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 相关文章推荐
checkbox全选/取消全选以及checkbox遍历jQuery实现代码
Dec 02 Javascript
javascript时间自动刷新实现原理与步骤
Jan 06 Javascript
jQuery实现单击按钮遮罩弹出对话框(仿天猫的删除对话框)
Apr 10 Javascript
jquery仿百度经验滑动切换浏览效果
Apr 14 Javascript
js实现获取当前时间是本月第几周的方法
Aug 11 Javascript
window.close(); 关闭浏览器窗口js代码的总结介绍
Jul 14 Javascript
Javascript中indexOf()和lastIndexOf应用方法实例
Aug 24 Javascript
React Native 搭建开发环境的方法步骤
Oct 30 Javascript
在 Typescript 中使用可被复用的 Vue Mixin功能
Apr 17 Javascript
微信小程序tabbar底部导航
Nov 05 Javascript
node脚手架搭建服务器实现token验证的方法
Jan 20 Javascript
一篇文章弄清楚Ajax请求的五个步骤
Mar 17 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,ajax实现分页
2008/03/27 PHP
php 动态多文件上传
2009/01/18 PHP
用PHP ob_start()控制浏览器cache、生成html实现代码
2010/02/16 PHP
smarty中先strip_tags过滤html标签后truncate截取文章运用
2010/10/25 PHP
linux下使用ThinkPHP需要注意大小写导致的问题
2011/08/02 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
2017/08/31 PHP
javascript addBookmark 加入收藏 多浏览器兼容
2009/08/15 Javascript
jquery 模式对话框终极版实现代码
2009/09/28 Javascript
用js正确判断用户名cookie是否存在的方法
2014/01/28 Javascript
基于jquery实现的文字向上跑动类似跑马灯的效果
2014/06/17 Javascript
javascript实现无缝上下滚动特效
2015/12/16 Javascript
js制作支付倒计时页面
2016/10/21 Javascript
JavaScript闭包_动力节点Java学院整理
2017/06/27 Javascript
javascript计算对象长度的方法
2017/10/25 Javascript
解决select2在bootstrap modal中不能正常使用的问题
2018/08/09 Javascript
JavaScript刷新页面的几种方法总结
2019/03/28 Javascript
vue.js的简单自动求和计算实例
2019/11/08 Javascript
VUE 直接通过JS 修改html对象的值导致没有更新到数据中解决方法分析
2019/12/02 Javascript
解决vue-router 切换tab标签关闭时缓存问题
2020/07/22 Javascript
Vue.extend 登录注册模态框的实现
2020/12/29 Vue.js
日常整理python执行系统命令的常见方法(全)
2015/10/22 Python
Python图片裁剪实例代码(如头像裁剪)
2017/06/21 Python
python计算auc指标实例
2017/07/13 Python
Python基于回溯法子集树模板解决0-1背包问题实例
2017/09/02 Python
Tornado 多进程实现分析详解
2018/01/12 Python
python输出pdf文档的实例
2020/02/13 Python
PyQt5 界面显示无响应的实现
2020/03/26 Python
html5小技巧之通过document.head获取head元素
2014/06/04 HTML / CSS
装潢设计实习自我鉴定
2013/09/19 职场文书
幼儿教育感言
2014/02/05 职场文书
化工实习心得体会
2014/09/09 职场文书
职工擅自离岗检讨书
2014/09/23 职场文书
工作推荐信模板
2015/03/25 职场文书
2015秋季新学期开学寄语
2015/05/28 职场文书
安全学习心得体会范文
2016/01/18 职场文书
汽车销售合同文本
2019/08/08 职场文书