0

我有几个radio按钮,当我选择其中一个时,我还必须检查另一个。

例如,如果我在一个按钮上选择yes ,则必须使用noradio自动检查另一个按钮。我尝试了一些脚本,但似乎不起作用。radio

有谁知道解决方案?我是JS的新手。

提前致谢!

4

6 回答 6

1

             > Live Demo <              


<!--HTML-->
<input type="radio" name="group_1" value="yes" id="r1">Yes<br>
<input type="radio" name="group_1" value="no" id="r2">No<br>
<br>
<input type="radio" name="group_2" value="yes" id="r3">Yes<br>
<input type="radio" name="group_2" value="no" id="r4">No<br>​

//Script
$("input[name='group_1']").click(function(){
    if(this.value=="yes"){
        $("input#r4").attr("checked",true);
    }else{
        $("input#r3").attr("checked",true);
    }
});
$("input[name='group_2']").click(function(){
    if(this.value=="yes"){
        $("input#r2").attr("checked",true);
    }else{
        $("input#r1").attr("checked",true);
    }
});​
于 2012-05-28T20:53:47.437 回答
0

我不太确定您要达到的目标,但是通过使用“名称”属性,这会自动发生……当您检查一个收音机时……其他具有相同名称的收音机被设置为未选中。

<input type="radio" name="someoption" value="0" />0 
<input type="radio" name="someoption" value="1" />1 
<input type="radio" name="someoption" value="2" />2 

检查上述任何一项将导致其他 2 个未被选中

除非你可能意味着复选框或多个选项集?

于 2012-05-28T20:47:40.713 回答
0

javascript:

$('#myradio1').bind('change', function () {
  $('#myradio3').attr('checked', 'checked');
});    

html

<input type="radio" name="cols1" value="1" id="myradio1" />
<input type="radio" name="cols1" value="2" id="myradio2" />
<input type="radio" name="cols2" value="1" id="myradio3" />
<input type="radio" name="cols2" value="2" id="myradio4" />

请参阅http://jsfiddle.net/9jXbv/上的工作示例

于 2012-05-28T20:50:16.173 回答
0

对于如下 HTML 标记:

<div>
    <input type="radio" name="one" value="yes"> yes
    <input type="radio" name="one" value="no"> no
</div>

<div>
    <input type="radio" name="two" value="yes"> yes
    <input type="radio" name="two" value="no"> no
</div>

你可以使用这个 JavaScript 代码:

$(":radio").on("change", function() {
    var that = this;
    $(":radio").filter(function() {
        return this.value == "no" && this.name != that.name;
    }).prop("checked", true);
});​

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

于 2012-05-28T20:50:45.690 回答
0

使用 jquery:

​$("#radio1").change(function() {
    $("#radio2").removeAttr("checked");
});​​​

http://jsfiddle.net/

于 2012-05-28T20:55:29.373 回答
0

我已经为此模拟了一个纯 JS 解决方案(没有库)

<input type="radio" name="g1" value="1" />Yes
<br />
<input type="radio" name="g1" value="0" />No
<br /><br />
<input type="radio" name="g2" value="1" />Yes
<br />
<input type="radio" name="g2" value="0" />No

<script type="text/javascript">
    var g1 = document.getElementsByName('g1'); // store g1 elements
    var g2 = document.getElementsByName('g2'); // store g2 elements

    // handle click functionality
    function radio_checked_event(obj, f) {
        if(obj.addEventListener) {
            obj.addEventListener('click', f, false);
        } else if(obj.attachEvent) {
            obj.attachEvent('onclick', f);
        }
    }

    // when you click on g1 yes
    radio_checked_event(g1[0], function() {
            //set g1 no to checked
        g2[1].setAttribute('checked', 'checked');
    });
</script>
于 2012-05-28T21:09:23.107 回答