验证电子邮件地址失败

时间:2012-04-04 02:10:39

标签: javascript jquery html css html5

我在jquery和电子邮件验证方面遇到了一些问题。我正在使用电子邮件输入框来检索用户输入的电子邮件地址(html5),但它不能在IE上工作,我现在想在提交之前添加一个简单的jquery函数来验证输入的电子邮件地址表格。 这就是我所做的。

    function IsValidEmail(email)
{
    var eReg=/^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
    return eReg.test(email);
}
$(document).ready(function()
    {
    var em=$('#email').val();
    if(!IsValidEmail(em))
    {
        $('#e-valid').css('color','red');
            $('#e-valid').html("Email is invalid.Please enter a valid address");
    }
    }
);

,这是表格

<form method="POST" action="doit" id="stuff">
        <table>
        <tr>
            <td width="175px"><label for="email">Your email address</label></td>                
            <td><input type="email" name="email" id="email" size="35"/><span id="e-valid">&nbsp;</span></td>
        </tr>
        <tr>
            <td></td><td><input type="submit" value="Send" /></td>
        </tr>
        </table>
    </form>

但是,当我在输入框中输入无效的电子邮件地址时,没有显示任何内容。我感谢任何帮助。谢谢。

2 个答案:

答案 0 :(得分:2)

您在页面加载时验证电子邮件,但在用户提交信息时验证。您应该在submit事件

上进行验证
$("#aspnetForm").submit(function(){
    var em=$('#email').val();
    if(!IsValidEmail(em))
    {
        $('#e-valid').css('color','red');
        $('#e-valid').html("Email is invalid.Please enter a valid address");
        return false;
    }
    return true;
}

答案 1 :(得分:0)

首先,你正在使用的正则表达式看起来很奇怪。 大多数使用反斜杠的占位符都会在字符集中失去意义。

有关用于验证电子邮件地址的正则表达式的信息,请参阅thisthis

修复正则表达式后,您应该按照Claudio的建议进行操作,并将验证放在表单提交上。