2016-03-26 2 views
1

Ich versuche, jQuery für E-Mail-Validierung in einem Formularfeldeine Klasse Zugabe nach E-Mail bestätigt wird mit Jquery

$(document).ready(function() { 
    var email = new RegExp("[a-z0-9._%+-][email protected][a-z0-9.-]+\.[a-z]{2,4}$"); 
    var value = $("#email_address").val(); 

    $("#email_address").on("keypress", function() { 
     if(email.test(value)) { 
      $("#email_address").parent().addClass("has-success"); 
     } 
    }); 
}); 

jedoch die has-success Klasse hinzukommen nicht zu verwenden. Ich habe jede Codezeile einzeln in der Konsole ausprobiert und sie scheinen alle auf das Richtige zu zeigen. Wenn alles zusammen ist, scheint es nicht zu funktionieren.

Antwort

6

Sie laden den Wert von jQuery's DOM bereit und laden es nie wieder.

Sie müssen den aktuellen Wert testen, nicht derjenige, der da ist, wenn das DOM bereit ist, in etwa:

$("#email_address").on("keypress", function() { 
    if(email.test($(this).val())) { 
     $("#email_address").parent().addClass("has-success"); 
    } 
}); 

Unrelated, aber ich persönlich würde den E-Mail-Test in einer Funktion einpacken so anstatt zu sagen email.test(xxx) könnte man es natürlich lesen wie validEmail(xxx) usw.

Verwandte Themen