1

我需要一些关于 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”相同。因此,如果我以 12 作为其值检查“peach”,那么还应检查以 12 作为其值的名为“apple”的复选框。

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

问候

费德里科

4

3 回答 3

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

演示

于 2012-07-26T17:12:28.400 回答
0

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

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

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

于 2012-07-26T17:16:30.170 回答
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/

于 2012-07-26T18:21:11.017 回答