0

我正在为学校编写一个 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"/>
4

1 回答 1

1

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

else (confirm("Are you sure you want to add this driver?")== true)

不太可能做你所期望的。我相信你想要一个else if那里。

正如它所写的那样,confirm会弹出,但它实际上并不控制任何东西的流程,所以你的下一个代码块

{
    window.location = 'add_driver.php';
}

无论如何都会发生。

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

于 2013-03-20T02:11:54.757 回答