/ / jquery validation: Passwortänderung und Bestätigung - jquery, jquery-validate

Jquery-Validierung: Passwortänderung und Bestätigung - Jquery, Jquery-Validate

Ich habe die jQuery-Validierung in Form einer Änderung der Mitgliedsdaten verwendet. Das Formular enthält drei Felder, d. H. Das ursprüngliche Kennwort (passwordOrig), Neues Kennwort (password) und Passwortbestätigung (passwordSecond). Ich möchte sicherstellen, dass der Benutzer entweder eingibt alle von ihnen oder keines von denen. Wie mache ich das mit jQuery?

Folgendes habe ich mir ausgedacht:

$("#accountData").validate({
rules: {
passwordOrig: {checkPassword: true},
password: {validChars: true, noSpace: true, minlength: 5},
passwordSecond: {equalTo: "#password"},
...
}
message: {
...
}

In obigem, checkPassword, validChars, und noSpace werden Methoden hinzugefügt.

Antworten:

1 für die Antwort № 1

Sie müssen sicherstellen, dass eine Mindestanzahl von Feldern in einem bestimmten Satz entweder ausgefüllt oder leer gelassen wird. additional-methods.js hat eine Methode, die diese Anforderung erfüllt, aufgerufen skip_or_fill_minimum

Um diese Regel zu verwenden, fügen Sie den Eingaben, an denen Sie interessiert sind, eine Klasse hinzu

<input class="mygroup" name="fname" id="fname">
<input class="mygroup" name="sname" id="sname">
<input class="mygroup" name="other" id="other">

Geben Sie dann die Regel an, die angibt, wie viele Sie ausfüllen müssen, in Ihrem Fall alle drei, und die Klasse, die Sie verwendet haben, in diesem Fall mygroup.

...
rules : {
fname : {skip_or_fill_minimum: [3,".mygroup"]},
sname : {skip_or_fill_minimum: [3,".mygroup"]},
other : {skip_or_fill_minimum: [3,".mygroup"]},
},
...

Es gibt ein gutes Beispiel für die Verwendung der Schwesterfunktion require_from_group in dieser Antwort


2 für die Antwort № 2

Sie müssen die additional-methods.js Datei und verwenden Sie eine enthaltene Regel namens skip_or_fill_minimum.

Fügen Sie eine gemeinsame hinzu class zu den relevanten input Felder:

<form id="accountData">
<input type="text" class="pw" name="passwordOrig" />
<input type="text" class="pw" name="password" id="password" />
<input type="text" class="pw" name="passwordSecond" />
....
</form>

Das skip_or_fill_minimum Regel erfordert zwei Parameter, die Anzahl der Felder in der Gruppierung und die class Name, den Sie oben erstellt haben, skip_or_fill_minimum: [3,".pw"]:

$(document).ready(function () {

$("#accountData").validate({ // initialize the plugin
rules: {
passwordOrig: {
checkPassword: true,
skip_or_fill_minimum: [3,".pw"]
},
password: {
validChars: true,
noSpace: true,
minlength: 5,
skip_or_fill_minimum: [3,".pw"]
},
passwordSecond: {
equalTo: "#password",
skip_or_fill_minimum: [3,".pw"]
}
},
groups: {
justaname: "passwordOrig password passwordSecond"
}
});

});

Arbeitsdemo: http://jsfiddle.net/DmTNW/

Ich habe auch benutzt das groups: Möglichkeit um die drei Nachrichten zu einer zu gruppieren, aber Sie können das entfernen, wenn Sie möchten. Möglicherweise möchten Sie auch Ihre benutzerdefinierte ersetzen noSpace Methode mit der bereits in der additional-methods.js Datei aufgerufen nowhitespaceAber auch dies hängt von Ihren Bedürfnissen ab.