Javascript JQuery确定是否已选中所有复选框列表(在div中)
我试图使用jQuery对表单进行一些验证;我需要一种方法,在该方法中,我可以验证中的所有控件是否已填写\选中。我的应用程序支持的复选框列表让我很为难,因为jQuery似乎喜欢单独处理每个复选框,但我真正需要做的是评估div中的所有cbl,并知道每个cbl是否至少选中了一个复选框Javascript JQuery确定是否已选中所有复选框列表(在div中),javascript,jquery,checkboxlist,Javascript,Jquery,Checkboxlist,我试图使用jQuery对表单进行一些验证;我需要一种方法,在该方法中,我可以验证中的所有控件是否已填写\选中。我的应用程序支持的复选框列表让我很为难,因为jQuery似乎喜欢单独处理每个复选框,但我真正需要做的是评估div中的所有cbl,并知道每个cbl是否至少选中了一个复选框 我可以根据自己的喜好命名DIV和单个CBL的id(也可以命名CBL1、CBL2等)。我真的需要一种方法来解析列表中的所有内容。您需要在每个列表中至少选中一个复选框。不知道这是否可行(使所有的CBL都有一个以“CBL”开头
我可以根据自己的喜好命名DIV和单个CBL的id(也可以命名CBL1、CBL2等)。我真的需要一种方法来解析列表中的所有内容。您需要在每个列表中至少选中一个复选框。不知道这是否可行(使所有的CBL都有一个以“CBL”开头的ID(例如CBL1、CBL2等等)):
这里有一个假设ASP解析您的CBL如下:
<h2>Interests</h2>
<ul id='CBL1' class='checkboxlist'>
<li><input type='checkbox' name='interest' value='javascript'> JavaScript</li>
<li><input type='checkbox' name='interest' value='jquery'> jQuery</li>
</ul>
<h2>Hobbies</h2>
<ul id='CBL2' class='checkboxlist'>
<!-- subsequent data -->
兴趣
- JavaScript
- jQuery
业余爱好
您可以通过以下方式检查此项:
function validateCBLs() {
var $lists = $('ul.checkboxlist');
$lists.each(function(i, item) {
if ($(item).find(':checked').length < 1) {
//Show user an error, etc
alert('Please, check at least one item from ' + $(item).attr('id'));
}
});
}
函数validateCBLs(){
var$lists=$('ul.checkboxlist');
$lists.每个(功能(i,项){
if($(项).find(':checked')。长度<1){
//向用户显示错误等
警报('请检查'+$(item).attr('id')中的至少一项);
}
});
}
jsiddle:试试这个:
$('.checkboxlist').filter(function(){
return $(this).find(':checked').size()>0;
}).size()
这将为您提供至少选中一个复选框的CBL的数量。您能给我们一些呈现的HTML吗?复选框列表不是一个HTML概念,而是一个被转换为HTML的Microsoft概念。如果选中了所有的复选框,而不是所有的复选框列表,那么这个答案对于了解如何遍历这些复选框可能很有用。@Rocket-它是ASP.Net中的一个控件,呈现为复选框的表或流布局复选框列表包含复选框,对吗?那么,为什么这不起作用呢?@Rocket-你要求检查每个列表中的每个复选框,而不是每个列表中至少一个。@Nick-噢。谢谢忽略这个答案。注意:演示使用两个ASP.NET复选框列表控件+1的实际输出,但是。。。为什么变量名前面有$符号?哦,这里需要一个var语句。@Billy ONeal,有些人在jQuery选择器变量前面加上
$
前缀,以将其标识为jQuery选择器。我不总是这样,我也不能告诉你我为什么在这里这么做。。。修复了var语句。
function validateCBLs() {
var $lists = $('ul.checkboxlist');
$lists.each(function(i, item) {
if ($(item).find(':checked').length < 1) {
//Show user an error, etc
alert('Please, check at least one item from ' + $(item).attr('id'));
}
});
}
$('.checkboxlist').filter(function(){
return $(this).find(':checked').size()>0;
}).size()