如果存在空字段,请选中HTML表单中的空字段并显示消息框

时间:2012-01-07 06:10:07

标签: php html webforms

我正在开发一个关于基于网络的系统的项目。我有一个表单,我想检查是否所有字段都填写,但当其中一个字段为空时,它将显示提示,并且不会将数据记录到数据库,除非表单已完成。如果字段为空,我能够显示提示但仍然记录提供的数据,即使一个或一些填充为空。

这是我的html表单代码:

<script type='text/javascript'>
function notEmpty(elem, helperMsg){
if(elem.value.length == 0){
    alert(helperMsg);
    elem.focus();
    return false;
}
return true;
}

<form action="insert.php" method="post">
FNAME: <input type="text" name="fname" maxlength="50" id="required"/>
MNAME: <input type="text" name="mname" maxlength="50" id="required"/>
LNAME: <input type="text" name="lname" maxlength="50" id="required"/><br/>

Male <input type="radio" name="gender" value="male" /><br/>
Female <input type="radio" name="gender" value="female" /><br/>

College: 
<select name="college">
<option value="default"> --- </option>
<option value="CEC">CEC</option>
<option value="CAD">CAD</option>
<option value="COB">COB</option>
</select>
</br>

<input type="submit" name="formSubmit"    onclick="notEmpty(document.getElementById('required'), 'Please Enter a Value')"
value='SUBMIT'/>
</form> 

我的PHP代码:

<?php

$con = mysql_connect("localhost","abs","abs");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("testdb", $con);

$sql="INSERT INTO name (fname, mname, lname, gender, college)
VALUES
('$_POST[fname]','$_POST[mname]','$_POST[lname]','$_POST[gender]','$_POST[college]')";

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }

echo "1 record added";

mysql_close($con)
?>

我无法让它发挥作用。我是php新手。请帮我。非常感谢!!

2 个答案:

答案 0 :(得分:2)

代码中有问题。您正在传递一个元素的id并想要检查所有元素。 此外,所有字段的ID都相同。

建议你一个链接:http://www.javascriptkit.com/script/script2/formrequired.shtml

显示您想要的实时示例。您可以从这里获取代码并尝试。

答案 1 :(得分:1)

您的函数正在返回一个值,但您没有使用它。

onclick="return notEmpty(...

错误的返回值将停止提交。

这就是表单仍然提交到后端的原因。

此外,id应始终是唯一的。使用getElementById只会返回一个元素,因此您实际上并未检查所有必填字段。您可以改为分配一个必需的类并循环遍历元素。