1

我有一个关于 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>

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

4

2 回答 2

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;
}
于 2012-04-04T02:21:16.700 回答
0

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

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

修复正则表达式后,您应该遵循Claudio的建议并将验证放在表单提交上。

于 2012-04-04T02:24:23.430 回答