0

ラジオボタンをリセットする解決策を見つけました。

この次の例は、4つの無線グループでうまく機能します。

<script type="text/javascript">
function uncheckRadio()
{   
    for(x=0; x<document.QuizForm.Q01.length; x++){document.QuizForm.Q01[x].checked = false;}
    for(x=0; x<document.QuizForm.Q02.length; x++){document.QuizForm.Q02[x].checked = false;}
    for(x=0; x<document.QuizForm.Q03.length; x++){document.QuizForm.Q03[x].checked = false;}
    for(x=0; x<document.QuizForm.Q04.length; x++){document.QuizForm.Q04[x].checked = false;}
}   

</script>

しかし、ここで、ネストされたループを適用して01から80まで反復することにより、80の無線グループを1つの単一(複数選択)形式でリセットしたいと思います。

ネストされたループを使用するいくつかの方法を試しましたが、どういうわけか、Q01、Q02などの反復を機能させる方法を見つけることができません...

どうもありがとう

4

1 に答える 1

0

標準をサポートするブラウザで、「Q」で始まる属性を持つ他の無線がないことが確実な場合は、querySelectorAllを使用できます。name

var radios = document.QuizForm.querySelectorAll("input[type=radio][name^=Q]:checked");

for (var l = radios.length; l > 0;)
  radios[--l].checked = false;

それ以外の場合は、角括弧表記を使用できます。

var elements = document.QuizForm.elements;
var prefix;

for (var l = 80; l > 1; l--) {
  prefix = l < 10 ? "Q0" : "Q";
  elements[prefix + l].checked = false;
}
于 2012-07-04T21:30:45.320 に答える