用Javascript验证表单

用Javascript验证表单,javascript,Javascript,我正在为学校编写一个php文件,我们必须对名字、姓氏和电子邮件进行javascript验证。如果一切正常,我们可以选择是添加驱动程序还是取消。如果出现问题,请返回表单。我在一个小页面中完成了验证脚本,并让它在那里工作,但是当我把它放在我的php文件中时,它就不再工作了。下面是一些代码片段: <script type = "text/javascript" > function val_name() { var namePattern = /^[A-Za-z]{3,25}$/;

我正在为学校编写一个php文件,我们必须对名字、姓氏和电子邮件进行javascript验证。如果一切正常,我们可以选择是添加驱动程序还是取消。如果出现问题,请返回表单。我在一个小页面中完成了验证脚本,并让它在那里工作,但是当我把它放在我的php文件中时,它就不再工作了。下面是一些代码片段:

<script type = "text/javascript" >
function val_name()
{
    var namePattern = /^[A-Za-z]{3,25}$/;
    if( !namePattern.test(document.upload.fn.value))
            alert("Enter valid first name");

    if( !namePattern.test(document.upload.ln.value))
        alert("Enter valid last name");

    var x=document.forms["upload"]["email"].value;
    var atpos=x.indexOf("@");
    var dotpos=x.lastIndexOf(".");

    if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= x.length)
    {
        alert("Not a valid e-mail address");
        return false;
    }
    else (confirm("Are you sure you want to add this driver?")== true)
    {
        window.location = 'add_driver.php';
    }
}
</script>

    <form id="upload" action="<?php echo $_SERVER['php_self'];?>" method="post" enctype="multipart/form-data" onsubmit="val_name()">

This is part of the html - the email part of it

<td>
email
</td>
<td>
<input type="text" id="email" name="email"/>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" id="add_driver" name="add_driver" value="add_driver" />
<input type="reset" value="clear form"/>

函数val_name()
{
var namePattern=/^[A-Za-z]{3,25}$/;
if(!namePattern.test(document.upload.fn.value))
警报(“输入有效的名字”);
if(!namePattern.test(document.upload.ln.value))
警告(“输入有效的姓氏”);
var x=document.forms[“upload”][“email”]。值;
var atpos=x.indexOf(“@”);
var dotpos=x.lastIndexOf(“.”);
如果(atpos<1 | | dotpos=x.length)
{
警报(“不是有效的电子邮件地址”);
返回false;
}
else(确认(“是否确实要添加此驱动程序?”)==true)
{
window.location='add_driver.php';
}
}

这可能只是一个粘贴错误,但是

else (confirm("Are you sure you want to add this driver?")== true)
不太可能做你期望的事情。我相信你需要一个
否则,如果那里有

编写时,将弹出
确认
,但它实际上并不控制任何内容的流动,因此您的下一个代码块

{
    window.location = 'add_driver.php';
}
无论如何都会发生


现在,你的问题是,我不知道这是否是你看到的错误。但是,您的代码至少有一个问题。

尝试使用javascript控制台(chrome中的F12)查看是否有错误。你到底是什么意思它不起作用?当你尝试这个方法时会发生什么?如果问题是你的add_driver.php没有获取你的表单数据,那可能是因为你正在重定向(window.location),而不仅仅是允许表单提交。我的意思是它不起作用。我会跳过一个名字,点击提交,它会弹出一个警告框,但什么也没发生。没有警报或其他任何东西。