我是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;不工作,有什么建议吗?提前谢谢。
答案 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;
}
}
现在它的工作正常!谢谢