4

2 つのチェックボックス フィールドがあります。Javascriptを使用して、チェックボックスを1つだけチェックできるようにしたいと思います。(たとえば、1 つのチェックボックス 1 がチェックされている場合、チェックボックス 2 がチェックされている場合、チェックボックス 1 のチェックが解除されます)

<input name="fries" type="checkbox" disabled="disabled" id="opt1"/>
<input type="checkbox" name="fries" id="opt2" disabled="disabled"/>

また、下にラジオ ボタンを配置したいと思います。これをクリックすると、両方のチェックボックスがオフになります。

 <input type="radio" name="o1" id="hotdog" onchange="setFries();"/>

これを行う最善の方法は、関数を作成することですか、それとも onclick ステートメントを使用できますか?

4

5 に答える 5

16

ラジオボタンを使用する必要がありますが、チェックボックスの外観が好きな人もいるので、これで処理する必要があります。入力に共通のクラスを追加しました。

function cbChange(obj) {
    var cbs = document.getElementsByClassName("cb");
    for (var i = 0; i < cbs.length; i++) {
        cbs[i].checked = false;
    }
    obj.checked = true;
}

デモ: http://jsfiddle.net/5uUjj/

于 2013-10-14T14:19:02.673 に答える
3

また、上記の tymeJV の回答に基づいて、1 つがクリックされたときに他のチェックボックスのみを無効にしたい場合は、これを行うことができます。

function cbChange(obj) {
var instate=(obj.checked);
    var cbs = document.getElementsByClassName("cb");
    for (var i = 0; i < cbs.length; i++) {
        cbs[i].checked = false;
    }
    if(instate)obj.checked = true;
}

tymeJV の機能では、両方のチェックを外すことはできません - これは可能です。(はい、奇妙ですが本当です..ラジオボタンではなく2つのチェックボックスが必要な意味的な理由がある場合があります)

于 2015-02-13T18:14:18.770 に答える