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スパンに配置されます。入力テキストを強調表示してバックスペースキーを押さない限り(またはバックスペースキーを押したままにして1回のキーストロークで入力が削除されない限り)、すべてが完全に機能します。このような場合、トリガーされるイベント(クリック、フォーカスアウトなど)に関係なく、チェックマークは残ります。動作はすべてのブラウザで同じようです。何が問題なのですか?

4

1 に答える 1

0

このhttp://jsfiddle.net/Pq5Ut/を試してみて、それが役に立ったかどうか教えてください。私はあなたと同じ電子メール検証を使用していないことを知っていますが、それはあなたが望むものかもしれないと感じています。

参考までに、私が使用している電子メールの正規表現は、jQuery検証プラグインから取得したものです。

于 2011-11-25T19:37:36.900 に答える