Сбой проверки электронной почты jQuery на Backspace - PullRequest
0 голосов
/ 25 ноября 2011
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 ставится галочка. Все работает отлично, если вы не выделите текст ввода и не нажмете клавишу возврата (или если вы удерживаете клавишу возврата, чтобы ввод был удален одним нажатием клавиши). В этих случаях флажок остается независимо от того, какие события вызваны (щелчок, фокусировка и т. Д.). Поведение кажется одинаковым во всех браузерах. Есть идеи что не так?

1 Ответ

0 голосов
/ 25 ноября 2011

Попробуйте это http://jsfiddle.net/Pq5Ut/ и дайте мне знать, если это поможет вам.Я знаю, что я не использую ту же проверку электронной почты, что и вы, но я чувствую, что это может быть тем, что вы хотите.

К вашему сведению, регулярное выражение электронной почты, которое я использую, было просто извлечено из плагина проверки jQuery.

...