我正在尝试使用jQuery对表单进行一些验证;我需要一种方法,我可以验证是否所有控件都已填写\选中。我的应用程序支持的CheckBoxLists给了我一个艰难的时间,因为jQuery似乎喜欢单独解决每个复选框,但我真正需要做的是评估div中的所有CBL并知道每个是否至少检查过一个单独的框。
我可以根据需要命名DIV和各个CBL的ID(CBL1,CBL2等也可以)。我真的需要一种方法来解析
中的所有内容答案 0 :(得分:2)
假设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 -->
你可以检查一下这样做:
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'));
}
});
}
JSFiddle:Here
答案 1 :(得分:0)
您需要在每个选定的列表中至少选中一个复选框。不知道这是否有效(使所有CBL的ID都以'CBL'开头(例如CBL1,CBL2,...)):
var valid = true;
$('[id^="CBL"]').each(function(i,v){
valid = valid && ($(this).find(':checkbox:checked').size() >= 1);
});
alert(valid);
答案 2 :(得分:0)
function hasBoxesChecked(id) {
return $(":checkbox:checked", document.getElementById(id)).length > 0;
}
答案 3 :(得分:0)
试试这个:
$('.checkboxlist').filter(function(){
return $(this).find(':checked').size()>0;
}).size()
这将为您提供至少选中一个复选框的CBL数。