|
|
|
|
|
在本教程中,我將介紹如何創(chuàng)建一個下拉列表,其中包含帶復(fù)選框的選項列表。
我已經(jīng)通過使用 jQuery 函數(shù)(如 toggle()
、show()
和 hide()
)僅用幾行代碼就能實現(xiàn)此功能。
在這個例子中,我使用 jQuery 來切換下拉菜單。每個選項都包含復(fù)選框和標(biāo)題。單擊復(fù)選框或其標(biāo)題時,將選擇選項項。當(dāng)用戶提交表單時,所選選項會顯示在瀏覽器中。
jQuery實例:帶有復(fù)選框的下拉列表
以下 HTML 代碼用于創(chuàng)建自定義下拉列表。在這個例子中,我為自定義下拉菜單使用了靜態(tài)選項。你可以從數(shù)據(jù)庫或其他資源中讀取選項以顯示動態(tài)選項。
我在這個 HTML 中有選項標(biāo)題和選項列表容器。最初選項列表是隱藏的,在單擊選項標(biāo)題元素時顯示。
<div id="checkbox-dropdown-container">
<form id="fromCustomSelect" name="fromCustomSelect" action="" method="post">
<div class="custom-select" id="custom-select">Select Multi Options...</div>
<div id="custom-select-option-box">
<div class="custom-select-option">
<input onchange="toggleFillColor(this);"
class="custom-select-option-checkbox" type="checkbox"
name="toys[]" value="Fidget Spinner"> Fidget Spinner
</div>
<div class="custom-select-option">
<input onchange="toggleFillColor(this);"
class="custom-select-option-checkbox" type="checkbox"
name="toys[]" value="Lego Bricks"> Lego Bricks
</div>
<div class="custom-select-option">
<input onchange="toggleFillColor(this);"
class="custom-select-option-checkbox" type="checkbox"
name="toys[]" value="YoYo"> YoYo
</div>
<div class="custom-select-option">
<input onchange="toggleFillColor(this);"
class="custom-select-option-checkbox" type="checkbox"
name="toys[]" value="Barbie Doll"> Barbie Doll
</div>
</div>
</div>
</form>
</div>
在這個 jQuery 腳本中,我添加了處理自定義下拉切換事件和選擇選項的函數(shù)。為了模擬默認(rèn)的 HTML 下拉菜單,我添加了 jQuery 函數(shù)來啟用復(fù)選框以在單擊選項標(biāo)題時選擇選項。
$("#custom-select").on("click",function(){
$("#custom-select-option-box").toggle();
});
function toggleFillColor(obj) {
$("#custom-select-option-box").show();
if($(obj).prop('checked') == true) {
$(obj).parent().css("background",'#c6e7ed');
} else {
$(obj).parent().css("background",'#FFF');
}
}
$(".custom-select-option").on("click", function(e) {
var checkboxObj = $(this).children("input");
if($(e.target).attr("class") != "custom-select-option-checkbox") {
if($(checkboxObj).prop('checked') == true) {
$(checkboxObj).prop('checked',false)
} else {
$(checkboxObj).prop("checked",true);
}
}
toggleFillColor(checkboxObj);
});
$("body").on("click",function(e){
if(e.target.id != "custom-select" && $(e.target).attr("class") != "custom-select-option") {
$("#custom-select-option-box").hide();
}
});
不要忘記要先引用jQuery庫文件,以確保你的jQuery代碼能運(yùn)行正常。