使用jQuery从一组复选框中检查已选中复选框的值

时间:2013-12-17 18:22:23

标签: jquery html checkbox

我有一组复选框:

<input type="checkbox" value="v1" name="q_119[]">
<input type="checkbox" value="v2" name="q_119[]">
<input type="checkbox" value="v3" name="q_119[]">
<input type="checkbox" value="v4" name="q_119[]">

我想检查是否已选中某个特定复选框(例如value="v4" 如果是这样,请将css类添加到页面上的另一个元素。

我尝试使用此代码:

$('input[name="119[]"]').click(function(){
    if ($('input[value="v1"]:checked'))
    {
        {
            $('#qu_120').removeClass('hide');
        } 
        else
        {
            $('#qu_120').addClass('hide');
        } 
    }
});

但是选中复选框后,不会应用该类。 Here是我努力的方式

3 个答案:

答案 0 :(得分:3)

你刚刚在selector拼错了。检查名称。

尝试,

$('input[name="q_119[]"]').click(function(){
    if ($('input[value="v1"]').is(':checked'))
    {
       $('#qu_120').removeClass('hide');
    } 
    else
    {
       $('#qu_120').addClass('hide');
    } 
});

DEMO

答案 1 :(得分:1)

尝试:

$('input[name="q_119[]"]').change(function(){
    if ($('input[value="v1"]').prop('checked')){
            $('#qu_120').removeClass('hide');
    } 
    else{
        $('#qu_120').addClass('hide');
    }
});

DEMO here.

答案 2 :(得分:1)

你有四个问题阻止它工作:

$('input[name="119[]"]').click(function(){ // name attr is incorrect, should be "q_119[]"
    if ($('input[value="v1"]:checked')) // returns an object, so it will always be true
    { // <- unexpected curly brace
        {
            $('#qu_120').removeClass('hide');
        } 
        else
        {
            $('#qu_120').addClass('hide');
        } 
    } // <- unexpected curly brace
});

修复这些......

$('input[name="q_119[]"]').click(function () { // name attr is now correct
    if ($('input[value="v1"]:checked').length) { // length is an integer which returns 0 if the selector cannot find the element
        $('#qu_120').removeClass('hide');
    } else {
        $('#qu_120').addClass('hide');
    }
});

您的代码运行正常:http://jsfiddle.net/fXKFp/8/