一、基本用法
inputcheckbox是HTML5提供的一個多選框元素,可以通過設置type屬性為checkbox來創建。
<input type="checkbox" name="fruit" value="apple"> 蘋果
<input type="checkbox" name="fruit" value="banana"> 香蕉
<input type="checkbox" name="fruit" value="orange"> 橙子
上述代碼中,name屬性設置了多個多選框的分組屬性,value屬性設置了每個多選框對應的值。
當需要默認選中某些多選框時,可以通過在checked屬性設置為true來實現:
<input type="checkbox" name="fruit" value="apple" checked> 蘋果
<input type="checkbox" name="fruit" value="banana"> 香蕉
<input type="checkbox" name="fruit" value="orange" checked> 橙子
二、全選與取消全選
經常情況下,我們需要在一組多選框中設置全選和取消全選的功能。這可以通過兩個操作分別來實現:
<input type="checkbox" id="check-all"> 全選
<input type="checkbox" name="fruit" value="apple" class="check-one"> 蘋果
<input type="checkbox" name="fruit" value="banana" class="check-one"> 香蕉
<input type="checkbox" name="fruit" value="orange" class="check-one"> 橙子
$(function(){ $("#check-all").click(function(){ $(".check-one").prop("checked", $(this).prop("checked")); }); $(".check-one").click(function(){ if($(this).prop("checked") == false){ $("#check-all").prop("checked", false); } else if($(".check-one:checked").length == $(".check-one").length){ $("#check-all").prop("checked", true); } }); });
通過上述JavaScript代碼,當用戶點擊全選的多選框時,通過遍歷頁面中class為check-one的所有多選框,來設置它們的checked屬性。當其中任意一個多選框被取消選中時,取消全選的多選框也相應的取消選中;當全部多選框被選中時,則選擇全選的多選框也相應的選中。
三、多選框的樣式及功能拓展
在實際應用中,經常需要將多選框的樣式進行美化,或者為其添加更加豐富的功能。
1. 美化多選框的樣式
通過CSS樣式來美化多選框的外觀。
.checkbox { position: relative; display: inline-block; padding-left: 25px; margin-right: 10px; font-size: 14px; cursor: pointer; } .checkbox input[type="checkbox"] { position: absolute; opacity: 0; cursor: pointer; } .checkmark { position: absolute; top: 0; left: 0; height: 20px; width: 20px; border: 1px solid #ccc; border-radius: 3px; } .checkbox:hover input ~ .checkmark { background-color: #ccc; } .checkbox input:checked ~ .checkmark { background-color: #2196F3; border-color: #2196F3; } .checkmark:after { content: ""; position: absolute; display: none; } .checkbox input:checked ~ .checkmark:after { display: block; } .checkbox .checkmark:after { left: 7px; top: 3px; width: 5px; height: 10px; border: solid white; border-width: 0 2px 2px 0; transform: rotate(45deg); }
上述樣式設置了多選框的容器樣式以及多選框的樣式,當滑鼠移動到多選框上時,其樣式會發生變化。當多選框選中時,其樣式也會發生變化。
2. 選擇框級聯效果
選擇框級聯效果,即在第一個多選框選定後對之後的多選框進行篩選,換言之,第二個多選框將根據第一個多選框中選中的值來顯示與隱藏。
$(function(){ $("[name='type1']").click(function(){ var type1 = $(this).val(); $(".type2").addClass("hide"); $(".type2-" + type1).removeClass("hide"); }); });
當用戶點擊選擇類別1中的某個多選框時,通過遍歷class為type2的所有多選框,來設置其display屬性的不同值來實現級聯效果。
原創文章,作者:DEOUA,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/370349.html