0
function validate_email() {
    atsplit = $('input[name=email]').val().split('@');
    dotsplit = atsplit[1].split('.');
    if (atsplit.length == 2 && atsplit[0].length > 0 && dotsplit[dotsplit.length-1].length > 0 && dotsplit[dotsplit.length-2].length > 0) {
        $('#email').html('✔');
        valid_email = true; 
    }
    else {
        $('#email').html('');
        valid_email = false;
    }
}
$('*').live('change click focusout keyup submit', function(){
    validate_email();
});

我正在尝试验证电子邮件地址。如果电子邮件有效,则会在#email 范围内放置一个复选标记。除非您突出显示输入文本并按退格键(或者如果您按住退格键以便一键删除输入),否则一切正常。在这些情况下,无论触发什么事件(单击、聚焦等),复选标记都会保留。所有浏览器中的行为似乎都是相同的。有什么想法有什么问题吗?

4

1 回答 1

0

试试这个http://jsfiddle.net/Pq5Ut/让我知道这是否对你有帮助。我知道我没有使用与您相同的电子邮件验证,但我觉得这可能是您想要的。

仅供参考,我使用的电子邮件正则表达式刚刚从 jQuery 验证插件中提取。

于 2011-11-25T19:37:36.900 回答