2016-05-28 66 views
1

我使用PHP生成表格中的问题:的JavaScript document.getElementsByName()参数匹配输入的名称作为数组

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

这显然incorrect.I正在使用的风格锚与JS提交表单。我应该如何使用js来验证每个问题是否已被回答?

回答

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> 

对不起,我是我的电话,并不能测试就可以了:)

+0

我已经有造型类名。我可以使用ID吗?那么争论会是什么? –

+0

现在看看它 – user489872

相关问题