0

这是我使用 JavaScript 的电子邮件地址验证代码。警报消息正常工作,但是当我提交提供有效的电子邮件地址时,它会提示“请提供有效的电子邮件地址”。请帮我。

if(email=="")
{
    alert("Enter emailid");
    $("#email").focus();
    return false;
}

else if(email!="")
{
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

    if (!filter.test(email.value)) 
    {   
        //alert(email)
        //alert(filter.test(email.value)) 
        alert('Please provide a valid email address');
        email.focus();
        return false;
    }
}
4

3 回答 3

1

不是您问题的直接答案...但是您不能为此目的使用 HTML5 电子邮件输入吗?当浏览器可以处理电子邮件验证时,为什么还要编写 javascript 代码?使用这样的东西:

<input type="email" name="email">

使用它有很多优点,包括屏幕键盘来匹配它(添加 @ 和 .com 选项)。

对于不同类型的 HTML5 输入类型,请参阅:http ://www.w3schools.com/html/html5_form_input_types.asp

于 2013-10-03T11:22:05.793 回答
0

您的代码中有一个小错误,导致显示警报。

请在您的代码中查找此行

if (!filter.test(email.value)) 

并替换为

if (!filter.test(email)) 

可变电子邮件保存表单的电子邮件字段的值。

另一个变化是,寻找这条线

email.focus();

并将其更改为

$("#email").focus();
于 2013-10-03T11:35:10.860 回答
0

试试这个

function ValidateEmail(){

var email = $('#txtemail').val();
if(email=="")
{
    alert("Enter emailid");
    $("#txtemail").focus();
    return false;
}

else if(email!="")
{
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

    if (!filter.test(email)) 
    {   
        //alert(email)
        //alert(filter.test(email.value)) 
        alert('Please provide a valid email address');
        $('#txtemail').focus();
        return false;
    }
}
}

ValidateEmail在按钮的 onclick 事件上调用该函数。另请注意,您在这条线上做错了什么

if (!filter.test(email.value)) 

将其更改为

if (!filter.test(email)) 

希望这可以帮助。

工作演示

于 2013-10-03T11:35:37.707 回答