Javascript复选框验证不在php中工作
问题描述:
我正在努力验证一个复选框,似乎无法理解它出错的地方。任何帮助都会很棒。因为它是以数组形式从MySQL中提取的,所以我不确定这是不是我要出错的地方。Javascript复选框验证不在php中工作
<script language="JavaScript" type="text/javascript">
function checkform (form)
{
if(!form.check_box_delete[].checked) {
alert('Please check at least one of the options.');
return false;
}
return true;
}
</script>
这里是人体代码:
<form name="form" method="post" action="loan_checkedIn.php" onsubmit="return checkform(this);">
<?php
echo "<table border='1' align='center' width='900'>
<tr>
<th bgcolor='#00a3e0'><font face='Arial'>Select</font></th>
<th bgcolor='#00a3e0'><font face='Arial'>Customer</font></th>
<th bgcolor='#00a3e0'><font face='Arial'>Make</font></th>
<th bgcolor='#00a3e0'><font face='Arial'>Model</font></th>
</tr>";
$results = mysql_query("SELECT * FROM loan WHERE email='$email' AND status='Out'");
while($row1 = mysql_fetch_array($results))
{
echo "<tr>";
echo "<td align='center'><input type='checkbox' name='check_box_delete[]' value='" . $row1['id'] . "'></td>";
echo "<td align='center'><font face='Arial'>" . $row1['customer'] . "</font></td>";
echo "<td align='center'><font face='Arial'>" . $row1['make'] . "</font></td>";
echo "<td align='center'><font face='Arial'>" . $row1['model'] . "</font></td>";
echo "</tr>";
}
echo "</table>";
?>
<p align="center"><input type="submit" style="background-color:#00A3E0; color:#FFFFFF;" name="submit" value="Return Equipment"></p>
</form>
答
您有问题的JavaScript。改变你的代码如下:
<script language="JavaScript" type="text/javascript">
function checkform (form)
{
var checkboxs=form['check_box_delete[]'];
var cheked=false;
for(var i=0,l=checkboxs.length;i<l;i++)
{
if(checkboxs[i].checked)
{
cheked=true;
break;
}
}
if(!cheked)
{
alert('Please check at least one of the options.');
return false;
}
return true;
}
</script>
也停止使用deprected /删除mysql_扩展。使用mysqli_ 或PDO,而不是(用准备好的查询)
+0
编辑的函数可用于您的复选框。尝试一下 –
答
你可以通过表格中的所有元素type=checkbox
循环。
var element = form.elements;
for (var i = 0, element; element = elements[i++];) {
if (element.type === "checkbox" && element.selected === "selected")
alert("it's an empty textfield");
}
第一个问题,你得到的复选框列表? – Ravi
是的,它使用复选框在多行的一侧从MySQL中提取所有细节,如果选中,系统工作正常,但如果没有检查,则说实际上没有检查完成。 – Coops
您应该查看开发人员工具控制台,您将看到语法错误:'form.check_box_delete []'无效js –