解决bootstrap下拉菜单点击立即隐藏bug的方法


Posted in Javascript onJune 13, 2017

昨天用jQuery和bootstrap实现下拉菜单复选框,今天把做好的demo组合进项目里,发现有点bug,就是点击银行复选框的时候,每点一次dropdown-menu这个div会立即隐藏,这就导致每次只能选一个。

解决bootstrap下拉菜单点击立即隐藏bug的方法

这应该是事件传播的原因,代码修改如下:

var banks = $('.all').siblings().children();
$('.all>input').click(function() {
  var flag = $(this).prop('checked');
  banks.prop('checked', flag);
})

// 阻止事件传播, 否则在点击复选框的时候,dropdown-menu这个div会立即隐藏
$('.dropdown-menu label').click(function(e) {
  e.stopPropagation();
});
banks.click(function() {
  // 如果有一个没选中,全选按钮不选中
  // 如果全部选中,全选按钮被选中
  var num = 0;
  banks.each(function() {
    if ($(this).prop("checked")) {
      num++;
    }
  })
  if (num == banks.length) {
    $('.all>input').prop('checked', true);
  } else {
    $('.all>input').prop('checked', false);
  }
})

另外,需要新增加的功能是,点击“保存”按钮的时候,需要把选中的银行名称以逗号拼接成字符串传递给后台。这部分比较简单,代码如下:

// 在提交时,获取选中的所有值,并把这些值拼接成字符串
$('.submit').click(function() {
  var bankArr = [];
  banks.each(function() {
    if ($(this).prop("checked")) {
      bankArr.push($(this).val());
    }
  });
  var bankStr = bankArr.join(',');
  console.log(bankStr);
})

解决bootstrap下拉菜单点击立即隐藏bug的方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript数组函数unshift、shift、pop、push使用实例
Aug 27 Javascript
node+express+jade制作简单网站指南
Nov 26 Javascript
JavaScript基于自定义函数判断变量类型的实现方法
Nov 23 Javascript
详解ECMAScript6入门--Class对象
Apr 27 Javascript
js中apply和Math.max()函数的问题及区别介绍
Mar 27 Javascript
jquery.onoff实现简单的开关按钮功能(推荐)
May 24 jQuery
JavaScript函数节流和函数去抖知识点学习
Jul 31 Javascript
vue2.0 路由模式mode="history"的作用
Oct 18 Javascript
vue路由前进后退动画效果的实现代码
Dec 10 Javascript
浅谈Express.js解析Post数据类型的正确姿势
May 30 Javascript
Vue项目打包编译优化方案
Sep 16 Javascript
微信小程序开发数据缓存基础知识辨析及运用实例详解
Nov 06 Javascript
javascript实现非常简单的小数取整功能示例
Jun 13 #Javascript
微信小程序 新建登录页并实现tabBar隐藏
Jun 13 #Javascript
Node.js使用orm2进行update操作时关联字段无法修改的解决方法
Jun 13 #Javascript
bootstrap timepicker在angular中取值并转化为时间戳
Jun 13 #Javascript
微信小程序实现多个按钮toggle功能的实例
Jun 13 #Javascript
JavaScript基于扩展String实现替换字符串中index处字符的方法
Jun 13 #Javascript
微信小程序--组件(swiper)详细介绍
Jun 13 #Javascript
You might like
便携利器 — TECSUN PL-365简评
2021/03/02 无线电
谈谈PHP语法(4)
2006/10/09 PHP
用PHP制作静态网站的模板框架(四)
2006/10/09 PHP
php获取发送给用户的header信息的方法
2015/03/16 PHP
phpStudy访问速度慢和启动失败的解决办法
2015/11/19 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
2017/05/11 PHP
PHP实现文件上传操作和封装
2020/03/04 PHP
Javascript 面向对象 命名空间
2010/05/13 Javascript
在网站上应该用的30个jQuery插件整理
2011/11/03 Javascript
table行随鼠标移动变色示例
2014/05/07 Javascript
实现网页页面跳转的几种方法(meta标签、js实现、php实现)
2014/05/20 Javascript
JS JQUERY实现滚动条自动滚到底的方法
2015/01/09 Javascript
JavaScript获取网页表单action属性的方法
2015/04/02 Javascript
js中this用法实例详解
2015/05/05 Javascript
使用JS批量选中功能实现更改数据库中的status状态值(批量展示)
2016/11/22 Javascript
Nodejs 复制文件/文件夹的方法
2017/08/24 NodeJs
js实现数组和对象的深浅拷贝
2017/09/30 Javascript
在node中使用jwt签发与验证token的方法
2019/04/03 Javascript
vue实现随机验证码功能(完整代码)
2019/12/10 Javascript
js实现网页随机验证码
2020/10/19 Javascript
[01:20]DOTA2 齐天大圣至宝动态展示
2016/12/13 DOTA
[43:41]VP vs RNG 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
Python中__name__的使用实例
2015/04/14 Python
深入源码解析Python中的对象与类型
2015/12/11 Python
深入理解Python 关于supper 的 用法和原理
2018/02/28 Python
Pycharm 操作Django Model的简单运用方法
2018/05/23 Python
详解CSS3中强大的filter(滤镜)属性
2017/06/29 HTML / CSS
从一次项目重构说起CSS3自定义变量在项目的使用方法
2021/03/01 HTML / CSS
BASIC HOUSE官方旗舰店:韩国著名的服装品牌
2018/09/27 全球购物
俄罗斯一家时尚女装商店:Charuel
2019/12/04 全球购物
存储过程和sql语句的优缺点
2014/07/02 面试题
秘书行业自我鉴定范文
2013/12/30 职场文书
2014爱耳日宣传教育活动总结
2014/03/09 职场文书
给老婆的保证书
2015/01/16 职场文书
2016年习总书记讲话学习心得体会
2016/01/20 职场文书
通过shell脚本对mysql的增删改查及my.cnf的配置
2021/07/07 MySQL