繁体   English   中英

JavaScript验证-在文本框上不起作用

[英]JavaScript validation - not working on text boxes

试图在表单上运行一些Javascript验证,但是没有任何效果。 应该发出警报,阻止用户继续预订座位,但是他们可以自由地继续。 不知道我在做什么错,但似乎很基本。

如果有人可以看一下我的代码,我将不胜感激。

文字输入表格>>>

<form method="POST" name="Customer_Details" action="Ice Cream.php">
    <h3> Full Name </h3>
    <p> Name - Full Name. </p>
    <input type="text" name="Name" oninput="nameCheck();" />

    <h3> Email Address </h3>
    <p> Email here please </p>
    <input type="text" name="Email" oninput="return(validateEmail());" />
    <input type="submit" name="submit" value="Book Tickets">
</form>

validateEmail()的JavaScript;

var email = document.Customer_Details.Email;

function validateEmail(email)  
{  
    var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;  
    if(email.value.match(mailformat))  
    {  
        return true;  
    }  
    else  
    {  
        alert("You have entered an invalid email address. Please try again!");  
        email.focus();  
        return false;  
    }  
} 

您的var电子邮件不是您的validate email功能的参数。 该函数不需要任何参数:

function validateEmail()  
{  
    email = document.Customer_Details.Email;
    var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;  
    if(email.value.match(mailformat))  
    {  
        return true;  
    }  
    else  
    {  
        alert("You have entered an invalid email address. Please try again!");  
        email.focus();  
        return false;  
    }  
}

(但是使用oniput使得输入电子邮件变得困难...)

我认为您的问题是在错误的位置调用了您的JavaScript验证。 提交表单时应调用它。

当我测试它时,此代码有效:

HTML:

<form method="POST" name="Customer_Details" action="Ice Cream.php" onsubmit="return validateEmail()">
    <h3> Full Name </h3>
    <p> Name - Full Name. </p>
    <input type="text" name="Name">
    <h3> Email Address </h3>
    <p> Email here please </p>
    <input type="text" name="Email">
    <input type="submit" name="submit" value="Book Tickets">
</form>

JS:

function validateEmail() {
    var email = document.Customer_Details.Email;

    if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email.value)) {
        alert("You have entered an invalid email address");
        email.focus();
        return false;
    } else {
        return true;  
    }  
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM