Jquery选中一个复选框时选中所有复选框

时间:2012-04-27 19:38:40

标签: jquery

我有一系列复选框,可以从智能模板构建。当选择具有WTOPS值的特定复选框时,我希望此操作选择div中的所有其他复选框。这是我下面的代码无效

这是我的jquery:

$("input[name=levelCheck]").change(function () {
if ($("input[name=levelCheck]:checked").val() == 'WTOPS') {
$("input[type='checkbox']").attr('checked', true);  
}
});

这是HTML:

<div id="Women">
<label> <input type="checkbox" name="level_desc[]" id="levelCheck" value="WOPEN"> Open </label>
<label> <input type="checkbox" name="level_desc[]" id="levelCheck" value="WPREPOPT"> Prep Opt </label>
<label> <input type="checkbox" name="level_desc[]" id="levelCheck" value="WTOPS"> TOPS </label>
</div>

7 个答案:

答案 0 :(得分:1)

下面的脚本应该为您拥有的标记提供技巧,

DEMO

$(function() {
    $("input[name=level_desc\\[\\]]").change(function() {        
        if ($("input[name=level_desc\\[\\]]:checked").val() == 'WTOPS') {
            $("input[type='checkbox']").attr('checked', true);
        }
    });
});

迈克尔指出,使用引号看起来更好,

$(function() {
    $("input[name='level_desc[]']").change(function() {        
        if ($("input[name='level_desc[]']:checked").val() == 'WTOPS') {
            $("input[type='checkbox']").attr('checked', true);
        }
    });
});

答案 1 :(得分:1)

尝试定位特定的复选框 - 无需全部查看。

$("input[value=WTOPS]:not(:checked)").change(function () {
    $("input[type='checkbox']").attr('checked', 'checked');  
});

这特别针对WTOPS复选框,当它取消选中时以及何时更改。然后它会触发所有要检查的复选框。当WTOPS框未经检查时,问题没有谈到改变所有未选中的选项,但这是一种方法:

$("input[value=WTOPS]").change(function () {
    $("input[type='checkbox']").attr('checked', $("input[value=WTOPS]").val());  
});

答案 2 :(得分:0)

您的$("input[name=levelCheck]:checked")应为$("input#levelCheck:checked")

答案 3 :(得分:0)

试试这个:

$("input#levelCheck").change(function () {
if ($("input#levelCheck:checked").val() == 'WTOPS') {
$("input[type='checkbox']").attr('checked', true);  
}
});

答案 4 :(得分:0)

如果使用属性值选择器,则应将值包装在引号 -

$("input[name='levelCheck']:checked");

请注意包含值name='levelCheck'

的引号

答案 5 :(得分:0)

您多次使用ID属性,并且需要将名称换成单引号。

HTML

<div id="Women">
<label> <input type="checkbox" name="level_desc[]" id="levelCheck1" value="WOPEN"> Open </label>
<label> <input type="checkbox" name="level_desc[]" id="levelCheck2" value="WPREPOPT"> Prep Opt </label>
<label> <input type="checkbox" name="level_desc[]" id="levelCheck3" value="WTOPS"> TOPS </label>
</div>​

JS

$("input[name='level_desc[]']").change(function () {
     if ($("input[name='level_desc[]']:checked").val() == 'WTOPS') {
         $("input[name='level_desc[]']").attr('checked', true);  
     }
});

DEMO
http://jsfiddle.net/ScMsX/

答案 6 :(得分:0)

试试这个

$("input[type='checkbox']").change(function () {
    console.log($(this));
if ($(this).val() == 'WTOPS') {
$("input[type='checkbox']").attr('checked', true);  
}
});

点击此处http://jsfiddle.net/khqPj/