当一个无线电组值为“是”时,将第二个设置为“否”,反之亦然

时间:2014-02-09 00:24:20

标签: javascript jquery html

我有这个HTML:

<div id="first">
  <input type="radio" name="one" value="yes" />Yes
  <input type="radio" name="one" value="no"  />No
</div>

<div id="second">
  <input type="radio" name="two" value="yes" />Yes
  <input type="radio" name="two" value="no"  />No
</div>

我需要的是什么时候在第一个div收音机&#39;是&#39;然后检查另一台收音机&#39;否&#39;在第二个div应该自动检查,反之亦然。此外,当&#39; No&#39;在一个div然后&#39;是&#39;其他。我怎么能用jQuery做到这一点?

2 个答案:

答案 0 :(得分:4)

如果选择了其中一个按钮,则查找具有“相反”值的所有其他按钮,不包括具有相同名称的按钮。

示例:

var $radios = $('input[type=radio]').change(function () {
    var value = this.value === 'yes' ? 'no' : 'yes';
    $radios.filter('[value=' + value + ']:not([name=' + this.name + '])')
        .prop('checked', true);
});

DEMO

答案 1 :(得分:2)

或者您也可以使用.index()方法:

var $elems = $('div').find('input').change(function() {
    $elems.not(this.parentNode)
          .find('input')
          .not(':eq('+$(this).index()+')')
          .prop('checked', true);
}).end();

http://jsfiddle.net/dYvCq/