1

異なるグループからすべてのラジオ ボタンを一度に選択する賢い方法があるかどうか知りたいです。

古いサイトなのでjqueryが使えません。

これは私がこれまでに得たものです。

私は codepen にコードを置きました。私にはかなり単純に見えますが、おそらく同じ結果を達成する最も簡単な方法があると思います。

コードペン

HTML:

<form name="form1">
  <input type="radio" name="group1" value="1">Yes<br />
  <input type="radio" name="group1" value="0">No<br />
  <input type="radio" name="group2" value="1">Yes<br />
  <input type="radio" name="group2" value="0">No<br />
  <input type="radio" name="group3" value="1">Yes<br />
  <input type="radio" name="group3" value="0">No
  <br />
  <br />
  <input type="radio" name="group4" value="1" onclick="selectAll(form1)">All Yes<br />
  <input type="radio" name="group4" value="0" onClick="selectAll(form1)" >All No
</form>

ジャバスクリプト:

    <script type="text/javascript">
    function selectAll(form1) {

      var check = document.getElementsByName("group4"),
            radios = document.form1.elements;

        if (check[0].checked) {

            for( i = 0; i < radios.length; i++ ) {

                if( radios[i].type == "radio" ) {

                    if (radios[i].value == 1 ) {

                        radios[i].checked = true;
                    }

                }

            }

        } else {

            for( i = 0; i < radios.length; i++ ) {

                if( radios[i].type == "radio" ) {

                    if (radios[i].value == 0 ) {

                        radios[i].checked = true;

                    }

                }

            }

        };
      return null;
    }
    </script>
4

2 に答える 2

0

onclick を次のように変更すると、次のように回避selectAll(this)できます。

function selectAll( check ) {
    var radio, i=0;
    while( radio=check.form.elements[i++] )
        if( radio.type == "radio" && radio.value == check.value )
            radio.checked = true;
};
于 2012-10-30T21:43:41.563 に答える