1

我设置了两个单选按钮,我想要的是如果我在第一次设置时选择是,它应该自动选择另一个,因为这是我的代码

<input type="checkbox" name="saver" value="yes" id="saver"> Yes 
<input type="checkbox" name="saver" value="no" id="saver"> No 

<input type="checkbox" name="sendmail" value="yes" id="sendmail"> Yes
<input type="checkbox" name="sendmail" value="no" id="sendmail"> No

所以我想要的是,如果我在第一组选择是,它应该在第二组自动选择是,Jquery 在这里

$('#saver').keyup(function(){
   var checkbox_value = $('#saver:checked').val();

   if(checkbox_value == 'yes')
   {
      $('input[name="sendmail"]').attr('checked', true);
   }
});

它确实会自动选择另一组,但它会选择 no 而不是 yes

4

4 回答 4

3

您的 HTML 需要使用唯一 ID

<input type="checkbox" name="saver" value="yes" id="saver-yes"> Yes 
<input type="checkbox" name="saver" value="no" id="saver-no"> No 

<input type="checkbox" name="sendmail" value="yes" id="sendmail-yes"> Yes
<input type="checkbox" name="sendmail" value="no" id="sendmail-no"> No

这个 javascript 很简单(并且有效 - 见证明:http: //jsfiddle.net/kSVx7/1/

$('#saver-yes').change(function() {

  if($('#saver-yes:checked').val() == 'yes')
     $('#sendmail-yes').attr('checked', true);


});

通过使用 change 而不是 keyup,您还可以对鼠标单击(甚至触摸事件)进行操作。

通过引用唯一 ID,您所引用的元素没有歧义,因此 jQuery 知道要操作什么。

于 2011-09-17T10:46:53.057 回答
1

尝试这个 -

$('#saver').change(function() {
    var checkbox_value = $('#saver:checked').val();

    if (checkbox_value == 'yes') {
        $('input[name="sendmail"][value="yes"]').attr('checked', true);
    }
});

我已将“keyup”事件更改为“更改”,但如果您愿意,您可以将其更改回“keyup”。

工作演示 - http://jsfiddle.net/XyKM7/

于 2011-09-17T10:44:04.780 回答
0

ID 只能定义一次,您应该使用 change 而不是 keyup。

http://jsfiddle.net/7hq2V/1/

HTML:

<input type="checkbox" name="saver" value="yes" id="saver-yes"> Yes 
<input type="checkbox" name="saver" value="no" id="saver-no"> No 

<input type="checkbox" name="sendmail" value="yes" id="sendmail-yes"> Yes
<input type="checkbox" name="sendmail" value="no" id="sendmail-no"> No

JS:

$('#saver-yes').change(function() {
    if ($(this,':checked')) {
        $('#sendmail-yes').attr('checked', true);
    }
});
于 2011-09-17T10:46:40.010 回答
0

有几件事...

如果每个复选框组中的值是互斥的,那么单选按钮将是语义上更正确的选择。

其次,设置值的脚本部分不仅针对“是”复选框,还针对整个组-您需要添加另一个过滤器来做到这一点:

$('input[name="sendmail"][value="yes"]').attr('checked', true)

如果您将它们保留为复选框,您还需要处理取消选中否框。

于 2011-09-17T10:49:22.583 回答