jQuery函数以检查复选框

时间:2012-07-26 17:04:21

标签: jquery forms checkbox checked

我需要一些jQuery的帮助。

我有一个带复选框的表单,例如:

<form name="myform">
<input type="checkbox" name="apple[]" value="12" />
<input type="checkbox" name="apple[]" value="12" />
<input type="checkbox" name="apple[]" value="14" />
<input type="checkbox" name="apple[]" value="15" />
<input type="checkbox" name="peach[]" value="12" />
<input type="checkbox" name="peach[]" value="14" />
<input type="checkbox" name="peach[]" value="15" />

以下是尝试过的jQuery:

$(document).ready(function(){ 
    $(":checkbox").change(function(){ 
        if($('.peach').attr("checked")) { 
           alert("Checked"); 
        } 
        else { 
             alert("Unchecked"); 
        } 
     }); 
 }); 

当我选中一个名为“peach”的复选框时,我应该能够检查名为“apple”的复选框,其值与“peach”相同。因此,如果我选中“peach”并将12作为其值,则还应选中名为“apple”的复选框,其中12为其值。

我是jQuery的新手,所以我找不到自己的解决方案......会有人帮助我吗? : - )

此致

费德里科

3 个答案:

答案 0 :(得分:0)

尝试以下方法:

$('input[name^="peach"]').change(function() {
    var apple = $('input[name^="apple"][value='+ this.value +']') // phew
    if (this.checked) {
       apple.prop('checked', true)
    } else {
       apple.prop('checked', false)
    }       
})

Demo

答案 1 :(得分:0)

检查这个小提琴工作链接。 http://jsfiddle.net/NfU68/

$('input').on('click', function() {
    var value = $(this).val();
    var checked = $(this).is(':checked');
    $('input[value='+value+']').attr('checked', checked)
});

这里可以使用您自己的基于类或父标记的选择器而不是输入。我用于演示目的。

答案 2 :(得分:0)

以下解决方案会将on()事件处理程序附加到checkbox元素以捕获任何change事件。然后,它将获取当前value元素的checkbox并检查包含该值的所有其他checkbox元素。

$('input[type=checkbox]').on('change', function() {
    $('input[value='+this.value+']').attr('checked', $(this).is(':checked'));
});

演示:http://jsfiddle.net/z6H7j/

对于1.7之前的版本,使用delegate()而不是on()此时不存在。

$(document).delegate('input[type="checkbox"]', 'change', function() {
    $('input[value='+this.value+']').attr('checked', $(this).is(':checked'));
});

演示:http://jsfiddle.net/8mQwV/