2016-08-03 5 views
0

ich für Kennwort auf einem regex ich arbeiten, und ich berühren das Ziel :)JQuery - Passwort regex, wenn sie leer

Wenn der Benutzer Tipps ein Passwort, eine Fehlermeldung angezeigt und wenn er die Bedingungen erfüllt, die Fehlermeldung verschwindet.

Das einzige Problem ist die Situation, wenn der Benutzer die Rück Touch verwendet, um das Passwort-Feld, die Fehlermeldung weiterhin zu reinigen zeigt:

ist die Funktion

$('#id_password.form-control').on('input', function(){ 
    $('span.error-keyup-password').remove(); 
    var inputVal = $(this).val(); 
    var passwordReg = /^(?=.*\d)(?=.*[a-zA-Z])(?=.*[\W_]).{8,}$/; 
    if(!passwordReg.test(inputVal)) { 
     $(this).after('<span style="color:red;" class="error error-keyup-password">Au moins un chiffre, un lettre, un caractère spécial et 8 caractères.</span>'); 
    } else if (document.querySelector('id_password').value == ""){ 
     $('span.error-keyup-password').remove(); 
    } 
}); 

Ich bin Sicher, das Problem ist auf meiner Regex oder in der zweiten Bedingung, aber ich bin für den Moment fest. Wenn Sie einige Ideen, ich bin offen =)

Edit: Wenn das Ihnen helfen kann, kann ich Ihnen eine andere Funktion mit der E-Mail-Adresse und es funktioniert perfekt =)

$('#id_email.form-control').on('input', function(){ 
    $('span.error-keyup-email').remove(); 
    var inputVal = $(this).val(); 
    var emailReg = /^([\w-\.][email protected]([\w-]+\.)+[\w-]{2,4})?$/; 
    if(!emailReg.test(inputVal)){ 
     $(this).after('<span style="color:red;" class="error error-keyup-email">Format invalide.</span>'); 
    } 
}); 

Vielen Dank für Die Hilfe, die Sie geben können und einen schönen Tag haben =)

+0

Haben Sie versucht, $ ('# id_password.form-control') auf ('keyDown', function (.) { }); – Rahi

Antwort

0

Dies sollte funktionieren:

$('#id_password.form-control').on('input', function(){ 
    $('span.error-keyup-password').remove(); 
    var inputVal = $(this).val(); 
    var passwordReg = /^(?=.*\d)(?=.*[a-zA-Z])(?=.*[\W_]).{8,}$/; 
    if(!passwordReg.test(inputVal)) { 
     $(this).after('<span style="color:red;" class="error error-keyup-password">Au moins un chiffre, un lettre, un caractère spécial et 8 caractères.</span>'); 
    } 
    if ($(this).val() == ""){ 
     $('span.error-keyup-password').remove(); 
    } 
});