Da Ihr OP überhaupt keinen Code enthält, wird meine Antwort nicht Code enthalten ...
wie kann ich die Validierung von Feldern (X, Y, Z-Kraft) onkeyup
von formfield propBacklink
?
Standardmäßig wertet das Plugin das gesamte Formular auf der click
von einreichen, und jedes Feld einzeln auf keyup
und auf focusout
(auf click
für radio
, checkbox
und select
.)
Da Sie Möchten Sie eine Gruppe von Feldern auswerten, wenn das Feld propBacklink
ausgelöst wird, müssen Sie eine neue Methode (Regel) für propBacklink
mit the .addMethod()
method schreiben.
Innerhalb dieser benutzerdefinierten Funktion können Sie die Validierung auf ein beliebiges Element auslösen this.element()
verwenden.
this.element(element); // the field being evaluated by the custom method: propBacklink
this.element($('[name="X"]')); // field with name="X"
Nur zuweisen oder diese neue Regel deklarieren zu einem Feld, propBacklink
. X
, Y
und Z
werden gemäß der this.element()
, die in der Funktion Ihrer neuen benutzerdefinierten Regel enthalten ist, validiert.
Achten Sie auf die hundreds of examples posted here sowie die documentation within the tag Wiki.
EDIT:
Ich habe keine Ahnung, was Sie mit dieser Regelung auszulösen Validierung auf readonly
Felder, die der Benutzer steuern, nicht direkt erreichen wollen können.
Im Folgenden wird geprüft, ob X
, Y
und Z
gültig sind, und es wird ein Fehler zurückgegeben, wenn bei einigen von ihnen die Validierung fehlschlägt.
$.validator.addMethod("CheckNextFields", function(value, element) {
return this.optional(element) || (this.element($("[name='X']")) && this.element($("[name='Y']")) && this.element($("[name='Z']")));
}, "X, Y, and Z are not valid.");
(Natürlich werden Sie auch einige Validierungsregeln X
zuweisen müssen, Y
und Z
, wenn man sie überprüfen möchten. Ansonsten, was würden Sie auslösen?)
Das Format Ihres Regelobjekts ist auch etwas durcheinander. Sie sollten die Regeln in das rules
Objekt einfügen. Sie bestehen aus Schlüssel: Wert-Paaren des Feldnamens und der Liste der Regeln für jeden.
$('#yourform').validate({
rules: {
propBacklink: {
// rules for propBacklink
required: false, // <- superfluous (default)
url: true,
remote: {
url: "backlinkInDB.php",
type: "post"
},
CheckNextFields: true
},
X: {
// rules for X
},
Y: {
// rules for Y
},
Z: {
// rules for Z
},
....
},
....
Sie können kein Code-Snippet ausführen, wenn der Code fehlt. Mit anderen Worten, das JavaScript ist nutzlos ohne das relevante HTML. Bearbeitet, um das Snippet zu entfernen. – Sparky
Ihre Frage ist unklar. Standardmäßig wird die Validierung auch bei 'keyup' und bei' focusout' ausgelöst. Fragen Sie, wie Sie die Validierung basierend auf anderen Ereignissen auslösen können? – Sparky
Oh, Entschuldigung. Hoffe dieser Zusatz erklärt besser: In der Tat wird das aktuelle Formularfeld mit Fokus auf Keyup validiert. Aber ich will auch, dass die Felder X, Y, Z auf Schlüssel von Formularfeld A validiert werden. – Peps