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 个无线电组。

尝试了几种使用嵌套循环的方法,但不知何故我找不到让 Q01、Q02 等迭代工作的方法......

非常感谢

4

1 回答 1

0

在支持标准的浏览器中,您可以使用querySelectorAll,如果您确定没有其他具有name以“Q”开头的属性的收音机:

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 回答