2017-09-24 79 views
-2

我正在努力验证一个复选框,似乎无法理解它出错的地方。任何帮助都会很棒。因为它是以数组形式从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> 
+0

第一个问题,你得到的复选框列表? – Ravi

+0

是的,它使用复选框在多行的一侧从MySQL中提取所有细节,如果选中,系统工作正常,但如果没有检查,则说实际上没有检查完成。 – Coops

+1

您应该查看开发人员工具控制台,您将看到语法错误:'form.check_box_delete []'无效js –

回答

0

您有问题的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

编辑的函数可用于您的复选框。尝试一下 –

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"); 
    }