JavaScript document.getElementsByName()参数,用于将输入名称与数组匹配

时间:2016-05-28 22:28:19

标签: javascript html

我正在使用php生成表单问题:

<form action="formaction.php" method="post" name="form">

<?php
for ($j=0;$j<$no_of_ques;$j++)
switch ($qtype[$j]) { 
        case shorttext:
        echo " <textarea name='qno[$j]'></textarea>";
        break;
   case checkbox:

  for($l=0;$l<$no_of_choices;$l++) 
        { echo "<input type='checkbox' name='qno[$j]' value='$choices[$l]'>$choices[$l]";
        }
        break;
}
?>
<a href='#' class='submit button'onclick='myFunction()'>Submit</a>
<script>
 function myFunction(){ 
If (document.getElementsByName("qno").checked)
     document.forms['form'].submit(); 
     }
    </script>

这显然是不正确的。我使用样式锚来提交带有js的表单。如何使用js验证每个问题是否已被回答?

1 个答案:

答案 0 :(得分:2)

为它们提供所有相同的类名,并通过getElementsByClassName访问它们。这样你可以保持名字属性。

<form action="formaction.php" method="post" name="form">

<?php
for ($j=0;$j<$no_of_ques;$j++)
switch ($qtype[$j]) { 
        case shorttext:
        echo " <textarea class="xxx" name='qno[$j]'></textarea>";
        break;
   case checkbox:

  for($l=0;$l<$no_of_choices;$l++) 
        { echo "<input class="xxx" type='checkbox' name='qno[$j]' value='$choices[$l]'>$choices[$l]";
        }
        break;
}
?>
<a href='#' class='submit button'onclick='myFunction()'>Submit</a>
<script>
 function myFunction(){ 
     var ok = true;
     for(obj in document.getElementsByClassName("xxx")) {
         if(!obj.checked) {
             ok = false;
             break;
         }
     }
     if(ok) {
        document.form.submit();
     }
}
</script>

抱歉,我在手机上并且无法测试它:)