数组表单长度不起作用

时间:2018-04-23 09:24:42

标签: javascript arrays

我是javascript的新手,需要一些建议。

1)我在PHP中有一个提交数组类型表单

    <form name=\"assessment\" method=\"post\">";

        while($k = mysql_fetch_array($sql1))
        { 
          $i++;
          $name = $k['name'];
          $id = $k['student_id'];

         print "\t<td align='center'><br>$i<br><br></td>\n";
         print "\t<td align='center' class=\"H1\"> 
         <font size=3><b>$name</b></font> 
         print "\t<td align='center'> 
         <select style=background:yellow name=result[$i]>
             <option value=\"\" selected> </option>
             <option value=\"1\">1</option>
             <option value=\"2\">2</option>
             <option value=\"3\">3</option>
             <option value=\"4\">4</option>
        </td>\n";
        ......
}

<input type=\"submit\" value=\"Submit\" onClick=\"return validate4()\">

2)我在注册到数据库之前调用了javascript来验证表单

<script language="JavaScript">
function validate4()
{       
var Input = document.assessment.getElementsByName("result[]");
for (i=0; i<Input.length; i++)
{
    if (assessment.Input[i].value == "")
    {
    alert('You have not entered all student attendance, pls check again!');      
    return false;
    }

}
.....
}
</script>

3)似乎数组长度给出= 0&amp;不工作,有什么建议吗?提前谢谢。

2 个答案:

答案 0 :(得分:1)

您尝试按'name=result[]'获取元素但是您的表单使用name=result[$i]您应该在javascript中查找'name=result[0]' 1 , 2 ...,您可以使用循环而不是静态搜索

答案 1 :(得分:0)

最后我找到了解决方案: 1)我删除了$ i =&gt;结果[$ i]于

   <form name=\"assessment\" method=\"post\">";

   while($k = mysql_fetch_array($sql1))
    { 
      $i++;
      $name = $k['name'];
      $id = $k['student_id'];

     print "\t<td align='center'><br>$i<br><br></td>\n";
     print "\t<td align='center' class=\"H1\"> 
     <font size=3><b>$name</b></font> 
     print "\t<td align='center'> 
     <select style=background:yellow name=result[$i]>

2)在验证中: 我改变了这个,

function validate4() {

    var k1=document.getElementsByName("result[]");
    var y1=k1.length;
    console.log(y1);
    for(var x=0;x<y1;x++)
    {
     if(k1[x].value==0||k1[x].value=="")
        {
        alert("atudent attendance not completed, pls check again!");
        return false;
        }
    }

现在它的工作正常!谢谢