JQuery 确定是否所有复选框列表(在 div 中)都已被选中

发布于 2024-09-29 04:49:23 字数 246 浏览 7 评论 0原文

我正在尝试使用 jQuery 对表单进行一些验证;我需要一种方法,可以验证 a 中的所有控件是否已填写\选择。我的应用程序支持的 CheckBoxLists 给我带来了困难,因为 jQuery 似乎喜欢单独处理每个复选框,但我真正需要做的是评估 div 中的所有 CBL,并知道每个 CBL 是否至少选中了一个单独的框。

我可以按照我认为合适的方式命名 DIV 和各个 CBL 的 ID(CBL1、CBL2 等也可以)。我真的需要一种方法来解析 a 中的所有内容

I am trying to use jQuery to do some validation on a form; I need a method where I can validate if all controls in a have been filled out \ selected. The CheckBoxLists my application supports are giving me a hard time as it seems like jQuery likes to address each checkboxes individually, but what I really need to do is evaluate all CBLs in a div and know if each has had at least one individual box checked.

I can name the DIV and the individual CBL's IDs as I see fit (so can do CBL1, CBL2, etc.). I really need a way to parse everything in a

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

撩人痒 2024-10-06 04:49:23

假设 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

Assuming that ASP parses your CBL as such:

<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 -->

You could check this doing something like:

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

笨笨の傻瓜 2024-10-06 04:49:23
function hasBoxesChecked(id) {
  return $(":checkbox:checked", document.getElementById(id)).length > 0;
}

这是现场演示

function hasBoxesChecked(id) {
  return $(":checkbox:checked", document.getElementById(id)).length > 0;
}

Here's a live demo

疯了 2024-10-06 04:49:23

您需要在每个选定列表中至少有 1 个复选框。不知道这是否可行(使所有 CBL 都有一个以“CBL”开头的 ID(例如 CBL1、CBL2,...)):

var valid = true;
$('[id^="CBL"]').each(function(i,v){
    valid = valid && ($(this).find(':checkbox:checked').size() >= 1);
});
alert(valid);

JSFiddle

You need to have at least 1 checkbox in each list selected. Wonder if this would work (make all the CBL's have an ID that starts with 'CBL' (eg. CBL1, CBL2,...)):

var valid = true;
$('[id^="CBL"]').each(function(i,v){
    valid = valid && ($(this).find(':checkbox:checked').size() >= 1);
});
alert(valid);

JSFiddle

套路撩心 2024-10-06 04:49:23

试试这个:

$('.checkboxlist').filter(function(){
            return $(this).find(':checked').size()>0;
        }).size()

这将为您提供至少选中一个复选框的 CBL 数量。

Try this:

$('.checkboxlist').filter(function(){
            return $(this).find(':checked').size()>0;
        }).size()

This will give you the number of CBLs that has at least one checkbox selected.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文