Jquery 實現checkbox全選方法
昨天早上有寫到怎么利用Jquery實現全選
根據大家的意見對程序中一些寫法不好的地方進行了修改,也是本人水平有限,存在各種考慮不到的地方。
文章最后我提出了一個問題,要寫一個通用的方法來調用,于是就有了現在的這篇文章,晚上回到家,我就寫出了效果
下面的例子可以供大家討論學習,如果覺得不錯也可以直接應用到項目中。
1:為什么要寫這個方法
網上實現一句話全選全不選的有很多,但是好像都忽略了一個問題,全選的checkbox可以控制下面的子checkbox,但是下面的子checkbox應該也可以控制上面的全選,這樣就有了我的這個方法。
2:開發(fā)過程:要實現通用就要解決2個問題,怎么分組,怎么判斷組里面哪個checkbox為全選,我想了想,覺得用name分組可以,
用class來判斷是否是需要全選的checkbox組。先找到所有class為需要全選的,再找出name屬性,根據name屬性就可以找到其他的子checkbox,只要找到元素就可以進行操作了
3:文件,下面是我實現的js,保存為xs_checkbox_all.js
$(document).ready(function () {
var xsChk = "xsChk";//定義的樣式
var xsChkAll = "input[type='checkbox'][class='" + xsChk + "'][name]";//所有定義此樣式的checkbox
$(xsChkAll).each(function () {
var name = $(this).attr("name");
name = "input[type='checkbox'][class!='" + xsChk + "'][name='" + name + "']";//此全選框下面的子checkbox
$(this).click(function () {
$(name).attr("checked", $(this)[0].checked);
})
var xschk = $(this);
$(name).click(function () {
var IAll = $(name).length; //此子項目下所有checkbox的個數
var IChk = $(name + ":checked").length; //此子項目下所有勾選checkbox的個數
var isAllChecked = true; //是否是全選
if (IAll != IChk) {
isAllChecked = false;
}
$(xschk).attr("checked", isAllChecked);
});
});
});
頁面使用
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " <html xmlns=" <head>
<title></title>
</head>
<body>
<script src=" </script>
<script src="xs_checkbox_all.js" type="text/javascript"></script>
<fieldset>
<legend>全選one</legend>
<input type="checkbox" class="xsChk" name="chk" />
全選
<div>
<input type="checkbox" name="chk" />
1<br />
<input type="checkbox" name="chk" />
2<br />
<input type="checkbox" name="chk" />
3<br />
<input type="checkbox" name="chk" />
4<br />
</div>
</fieldset>
<fieldset>
<legend>全選two</legend>
<input type="checkbox" class="xsChk" name="chk1" />
全選2
<div>
<input type="checkbox" name="chk1" />
11<br />
<input type="checkbox" name="chk1" />
22<br />
<input type="checkbox" name="chk1" />
33<br />
<input type="checkbox" name="chk1" />
44<br />
</div>
</fieldset>
</body>
</html>
可以達到效果,如果有什么優(yōu)化的地方,請大家提出,我會做的更好,謝謝大家了,以上就是本文的全部內容了,希望大家能夠喜歡。
相關文章
jQuery/JS監(jiān)聽input輸入框值變化實例
在本篇文章里小編給大家整理的是一篇關于jQuery/JS監(jiān)聽input輸入框值變化實例內容,需要的朋友們學習下。2019-10-10使用jQuery的ajax方法向服務器發(fā)出get和post請求的方法
這篇文章主要介紹了使用jQuery的ajax方法向服務器發(fā)出get和post請求的方法,需要的朋友可以參考下2017-01-01jquery 利用show和hidden實現級聯菜單示例代碼
級聯菜單的實現方法有很多,在本文為大家介紹下使用show和hidden輕松實現下級聯效果,感興趣的朋友可以參考下,希望對大家有所幫助2013-08-08jQuery.validate.js表單驗證插件的使用代碼詳解
Validate是基于jQuery的一款輕量級驗證插件,內置豐富的驗證規(guī)則,這篇文章主要介紹了jQuery.validate.js表單驗證插件的使用代碼詳解,需要的朋友可以參考下2018-10-10