【发布时间】:2011-11-25 19:23:57
【问题描述】:
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 范围内放置一个复选标记。除非您突出显示输入文本并按退格键(或者如果您按住退格键以便一键删除输入),否则一切正常。在这些情况下,无论触发什么事件(单击、聚焦等),复选标记都会保留。所有浏览器中的行为似乎都是相同的。有什么想法有什么问题吗?
【问题讨论】:
-
您尝试过使用按键事件吗?
-
我认为这将包含在 keyup 事件中,但我还是尝试添加它。这似乎没有什么不同。奇怪的是,在它卡在“已检查”上之后,直到您下次键入 @ 符号时才会解开...
-
在if中添加
console.log("Valided"),看按退格键时是否调用。 -
另外,你为什么不使用电子邮件正则表达式来验证?
-
Sawny,我在哪里查看控制台日志?
标签: jquery validation events email backspace