gpt4 book ai didi

javascript - CheckAll/UncheckAll 复选框与 jQuery

转载 作者:可可西里 更新时间:2023-11-01 13:13:00 27 4
gpt4 key购买 nike

我做了一个复选框checkall/uncheckall。

HTML

<div> Using Check all function </div>
<div id="selectCheckBox">
<input type="checkbox" class="all" onchange="checkAll('selectCheckBox','all','check','true');" />Select All
<input type="checkbox" class="check" onchange="checkAll('selectCheckBox','all','check','false');" />Check Box 1
<input type="checkbox" class="check" onchange="checkAll('selectCheckBox','all','check','false');" />Check Box 2
<input type="checkbox" class="check" onchange="checkAll('selectCheckBox','all','check','false');" />Check Box 3
<input type="checkbox" class="check" onchange="checkAll('selectCheckBox','all','check','false');" />Check Box 4
</div>

主要.js

function checkAll(parentId,allClass,checkboxClass,allChecked){
checkboxAll = $('#'+parentId+' .'+allClass);
otherCheckBox = $('#'+parentId+' .'+checkboxClass);
checkedCheckBox = otherCheckBox.filter($('input[type=checkbox]:checked'));
if(allChecked=='false'){
if(otherCheckBox.size()==checkedCheckBox.size()){
checkboxAll.attr('checked',true);
}else{
checkboxAll.attr('checked',false);
}
}else{
if(checkboxAll.attr('checked')){
otherCheckBox.attr('checked',true);
}else{
otherCheckBox.attr('checked',false);
}
}
}

它工作正常。但是当我有很多复选框时会变得笨重。我想通过使用 jQuery 而不是在每个复选框上放置 onchange 来完成同样的工作。我尝试了不同种类的东西,但无法工作。我尝试了以下一个:

$('.check input[type="checkbox"]').change(function(e){
checkAll('selectCheckBox','all','check','true');
});

做与 onchange 事件相同的工作,但没有工作。我哪里出错了。

最佳答案

我认为您只需要这个:您不需要传递所有参数并附加内联 onchange 事件。您可以简化代码。

$(function () {
$('input[type="checkbox"]').change(function (e) {
if(this.className == 'all')
{
$('.check').prop('checked', this.checked); //Toggle all checkboxes based on `.all` check box check status
}
else
{
$('.all').prop('checked', $('.check:checked').length == $('.check').length); // toggle all check box based on whether all others are checked or not.
}
});
});

Demo

关于javascript - CheckAll/UncheckAll 复选框与 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16875433/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com