嵌套For循环重置radiogroups

时间:2012-07-04 20:59:47

标签: javascript html

我找到了重置radiobuttons的解决方案。

下一个例子适用于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等迭代工作的方法......

非常感谢

1 个答案:

答案 0 :(得分: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;
}