解決bootstrap下拉菜單點擊立即隱藏bug的方法
昨天用jQuery和bootstrap實現(xiàn)下拉菜單復選框,今天把做好的demo組合進項目里,發(fā)現(xiàn)有點bug,就是點擊銀行復選框的時候,每點一次dropdown-menu這個div會立即隱藏,這就導致每次只能選一個。

這應該是事件傳播的原因,代碼修改如下:
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);
})

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
javascript操作cookie的文章(設(shè)置,刪除cookies)
一篇javascript處理cookie的文章,腳本之家之前發(fā)布過很多這樣的文章。2010-04-04
React Native JSI實現(xiàn)RN與原生通信的示例代碼
本文主要介紹了React Native JSI實現(xiàn)RN與原生通信的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08
使用uniapp打包微信小程序時主包和vendor.js過大解決(uniCloud的插件分包)
每個使用分包小程序必定含有一個主包,所謂的主包,即放置默認啟動頁面/TabBar頁面,以及一些所有分包都需用到公共資源/JS 腳本,下面這篇文章主要給大家介紹了關(guān)于使用uniapp打包微信小程序時主包和vendor.js過大解決的相關(guān)資料,,需要的朋友可以參考下2023-02-02

