2016-12-23 7 views
1

Ich benutze jQuery Validierung Plugin, um eine Reihe von Prüfungen, die ich hinzufügen oder entfernen. Was wäre der beste Weg, die Ausgänge als eine Saite zu kombinieren? Im folgenden Code für password1 Feld bekomme ich nur eine Nachricht zu einer Zeit, so heißt es in der Regel:Kombinieren validieren Ergebnisse in einer Nachricht mit jQuery

‚Passwort 8 Zeichen lang sein‘

oder

Es Passwort muss eine Zahl enthalten ' wäre schön zu sagen: "Passwort muss 8 Zeichen lang sein. Das Passwort muss eine Nummer enthalten. Das Passwort muss einen Buchstaben enthalten.

Ich schätze die Länge, in der man eingebaut ist, aber das könnte leicht zu einem addMethod geändert werden.

Danke.

<script> 
jQuery.validator.addMethod("containNumber", function(value, element) { 
    return this.optional(element) || (/\d/.test(value)); 
}, "Password must contain a number"); 

jQuery.validator.addMethod("containUpper", function(value, element) { 
    return this.optional(element) || (/[A-Z]/.test(value)); 
}, "Password must contain an uppercase character"); 

jQuery.validator.addMethod("containLower", function(value, element) { 
    return this.optional(element) || (/[a-z]/.test(value)); 
}, "Password must contain a lowercase character"); 

$("#passwordchange").validate({ 
    rules: { 
    password1: { 
     required: true, 
     minlength: 8, 
     maxlength: 64, 
     containNumber : true, 
     containUpper: true, 
     containLower: true 
    }, 
    password2: { 
     equalTo: '#password1' 
    } 
    } 
}); 
</script> 

Antwort

0

Hoffen, dass es hilfreich sein wird für Dich

In das Plugin erstellen eine .error Klasse im Boden des Eingangselementes jQuery.validator.addMethod wenn Nachricht etwas Fehlers kommt mit der speziellen Fehlermeldung enthält.

was Sie tun sollten, ist die Sammlung aller .error Klasse Texte iterieren Sie die Fehler meassge und concat und zeigen Sie die Zeichenfolge wie der untenstehende Code. Setzen Sie den Code, nachdem Sie die Fehlerklasse im Dom erhalten haben, sonst wird es nicht funktionieren.

var str = ''; 
$('.error').each(function() { 
    str += $(this).text() + ' '; 
}); 

console.log(str); // it concats all the error message 

In html ein div wie

<div class="concaterror"></div> 
$('.error').hide(); // Hide all the error class 
$('.concaterror').html(str); // append the concat error messages 

Hier verstecken die ganze .error Klasse erstellen. Erstellen Sie ein Div. Fügen Sie hier bitte die Variable str an und zeigen Sie an, wo Sie möchten.

+0

Danke, ich werde versuchen :) –

+0

@NeilWalker - haben Sie irgendwelche Eingabe dazu bekommen –