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 相关文章推荐
如果文字过长,则将过长的部分变成省略号显示
Jun 26 Javascript
编写自己的jQuery插件简单实现代码
Apr 19 Javascript
基于JavaScript自定义构造函数的详解说明
Apr 24 Javascript
AngularJS中取消对HTML片段转义的方法例子
Jan 04 Javascript
Javascript基础教程之定义和调用函数
Jan 18 Javascript
使用RequireJS优化JavaScript引用代码的方法
Jul 01 Javascript
VUE前端cookie简单操作
Oct 17 Javascript
原生JS实现 MUI导航栏透明渐变效果
Nov 07 Javascript
Angular父组件调用子组件的方法
Apr 02 Javascript
Puppet的一些技巧
Sep 17 Javascript
layui table 获取分页 limit的方法
Sep 20 Javascript
vue报错function () { [native code] },无法出现我们想要的内容 Unknown custom element
Apr 11 Vue.js
细说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
1.PHP简介
2006/10/09 PHP
PHP pear安装配置教程
2016/05/14 PHP
PHP调用API接口实现天气查询功能的示例
2017/09/21 PHP
JSON 数据格式介绍
2012/01/13 Javascript
jquery操作checkbox实现全选和取消全选
2014/05/02 Javascript
js动态改变select选择变更option的index值示例
2014/07/10 Javascript
理解和运用JavaScript的闭包机制
2015/08/13 Javascript
JavaScript中SetInterval与setTimeout的用法详解
2015/11/10 Javascript
JavaScript html5 canvas画布中删除一个块区域的方法
2016/01/26 Javascript
Bootstrap Table使用整理(四)之工具栏
2017/06/09 Javascript
深入理解vue $refs的基本用法
2017/07/13 Javascript
layui实现table加载的示例代码
2018/08/14 Javascript
解决Angular2 router.navigate刷新页面的问题
2018/08/31 Javascript
Vue CLI 2.x搭建vue(目录最全分析)
2019/02/27 Javascript
JS学习笔记之原型链和利用原型实现继承详解
2019/05/29 Javascript
js实现单元格拖拽效果
2020/02/10 Javascript
Element Backtop回到顶部的具体使用
2020/07/27 Javascript
前端开发基础javaScript的六大作用
2020/08/06 Javascript
python益智游戏计算汉诺塔问题示例
2014/03/05 Python
python抓取网页图片示例(python爬虫)
2014/04/27 Python
python time模块用法实例详解
2014/09/11 Python
python3.5 tkinter实现页面跳转
2018/01/30 Python
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
2018/06/26 Python
浅谈Tensorflow 动态双向RNN的输出问题
2020/01/20 Python
基于Python数据结构之递归与回溯搜索
2020/02/26 Python
Python求区间正整数内所有素数之和的方法实例
2020/10/13 Python
CSS3教程(1):什么是CSS3
2009/04/02 HTML / CSS
计算机专业个人求职信范例
2013/09/23 职场文书
市场营销管理毕业生自荐信
2014/03/03 职场文书
六一节目主持词
2014/04/01 职场文书
投资建议书模板
2014/05/12 职场文书
保护环境倡议书范文
2014/05/13 职场文书
给学校的建议书范文
2014/05/15 职场文书
2014高中生入党思想汇报范文
2014/09/13 职场文书
2016新党章学习心得体会
2016/01/15 职场文书
能让Python提速超40倍的神器Cython详解
2021/06/24 Python