0

複数回クリックすると、チェックボックスのチェックを外すボタンが1つ欲しいです。

私はこれを思いついた:

 function choseall() {      
        switch (d) {

            case 1:
                document.getElementById('cbconditioning').checked = true
                document.getElementById('cbradio').checked = true
                break;
            case 2:
                document.getElementById('cbconditioning').checked = false
                document.getElementById('cbradio').checked = false
                break;
        }
    }


        <input id="btnchoseall" type="button" value="Chose All" onclick="choseall()" /></tr>
        <input id="cbradio" type="checkbox"/>b. TV Radio (TV, Home Theatre, etc.)</td>
        <input id="cbconditioning" type="checkbox"/>a. Air Conditioning</td>
4

2 に答える 2

0

複数のチェックボックスがある場合、使用するidのは間違った選択です。代わりにname属性を使用する

1) 次の行を使用して、名前を持つすべてのチェックボックス要素を取得しますcbconditioning

var x = document.getElementsByName("cbconditioning");

2)次に、lengthプロパティを使用してチェックボックスの数を取得し、次のように繰り返します

function choseall() {
    var x = document.getElementsByName("cbconditioning");
    for (var i = 0; i < x.length; i++) {
        if (document.getElementsByName("cbconditioning")[i].checked) {
            document.getElementsByName("cbconditioning")[i].checked = false;
        } else {
            document.getElementsByName("cbconditioning")[i].checked = true;
        }
    }
}

3) 必要なのはtoggle、if...else.. ステートメントによって処理される同様の機能です。

switch4)あなたの関数で使用することはありません

JSFiddle

于 2013-11-04T08:58:23.787 に答える
0
function choseall(){
    var ischecked = document.getElementById('cbconditioning').checked;
    document.getElementById('cbconditioning').checked = !ischecked;
}

cbconditioning のチェック状態を反転します。

于 2013-11-04T08:51:24.190 に答える