我正在尝试php javascript表单验证。有2个输入字段。这两个字段都是必填项。第一次javascript验证是工作和表单不提交,但当我填写一个文本框值验证错误,然后表单提交没有验证。
下面是html代码
<form method="post" name="form_register" id="form_register" action="" onSubmit="return formValidation();">
<input type="text" id="firstname" name="firstname" value="<?=$_POST['firstname']?>" size="25">
<input id="lastname" value="<?=$_POST['lastname']?>" name="lastname" type="text" size="25">
javascript代码:
function formValidation()
{
var firstname= document.forms["form_register"]["firstname"].value;
if (firstname===null || firstname==="")
{
alert("First name must be filled out");
document.getElementById('firstname').focus();
return false;
}
var lastname = document.forms["form_register"]["lastname"].value;
if(lastname === null || lastname ==="")
{
alert("Last name must be filled out");
document.getElementById('lastname').focus();
return false;
}
else
{
return true;
}
}
表单后的Php代码:
if(isset($_POST['submit']))
{
//insertion goes here
}
我第一次没有在文本字段中输入。Result: validation is working.
第二次提交时,我只填了第一个文本框结果:表单提交时没有检查第二个输入验证您在javascript中为lastname添加了一个额外的空间。
就是用"lastname"代替"lastname"
这就是导致验证(javascript函数)在执行该行后失败的原因。
试试这个代码
<script type="text/javascript">
function formValidation()
{
var firstname= document.forms["form_register"]["firstname"].value;
var lastname = document.forms["form_register"]["lastname"].value;
if (firstname===null || firstname==="")
{
alert("First name must be filled out");
document.getElementById('firstname').focus();
return false;
}
else if(lastname === null || lastname ==="")
{
alert("Last name must be filled out");
document.getElementById('lastname').focus();
return false;
}
else
{
return true;
}
}</script>
<form method="post" name="form_register" id="form_register" action="" onSubmit="return formValidation();">
<input type="text" id="firstname" name="firstname" value="<?=$_POST['firstname']?>" size="25">
<input id="lastname" value="<?=$_POST['lastname']?>" name="lastname" type="text" size="25">
<input type="submit" name="submit" value="submit">
</form>
javascript代码中的"lastname"后面的引号内有一个空格
var lastname = document.forms["form_register"]["lastname "].value;
document.getElementById('lastname ').focus();