ボタンがいくつかradio
あり、そのうちの 1 つを選択すると、別のボタンもチェックする必要があります。
たとえば、ボタンで yes を選択すると、別radio
のボタンがnoradio
で自動的にチェックされる必要があります。いくつかのスクリプトを試しましたが、うまくいかないようです。
誰かが解決策を知っていますか? 私はJSが初めてです。
前もって感謝します!
ボタンがいくつかradio
あり、そのうちの 1 つを選択すると、別のボタンもチェックする必要があります。
たとえば、ボタンで yes を選択すると、別radio
のボタンがnoradio
で自動的にチェックされる必要があります。いくつかのスクリプトを試しましたが、うまくいかないようです。
誰かが解決策を知っていますか? 私はJSが初めてです。
前もって感謝します!
> 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);
}
});
これに対する純粋な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>
あなたが何を達成しようとしているのかはよくわかりませんが、「name」属性を使用すると、これが自動的に発生します...1つのラジオをチェックすると...同じ名前の他のラジオはチェックされません。
<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 つのチェックが外されます。
チェックボックスや複数のオプションセットを意味する場合を除きますか?
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/で実際の例を参照してください
以下のような 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);
});
jquery の場合:
$("#radio1").change(function() {
$("#radio2").removeAttr("checked");
});