我正在使用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验证每个问题是否已被回答?
答案 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>
抱歉,我在手机上并且无法测试它:)