LiveValidation .remove funktioniert nicht

9

Ich habe ein Webformular, das mit der LiveValidation-Erweiterung arbeitet. Ich habe eine bedingte Regel, dass, wenn der Benutzer United States auswählt, das State-or-province-Feld in der Liste der Statusabkürzungen enthalten sein muss.

Mein Problem ist, dass, wenn der Benutzer United States auswählt und dann zurückgeht und seine Antwort ändert, die Validierungsregel entfernt werden sollte, damit sie eine alte Textzeichenfolge eingeben können. Ich habe viermal meine Syntax überprüft und die Funktion gibt ein LiveValidation-Objekt anstelle eines Fehlerobjekts zurück, aber die Regel wird nicht entfernt. Jeder Rat würde sehr geschätzt werden.

Hier ist das Skript:

%Vor%     
Colin 20.09.2010, 22:52
quelle

1 Antwort

4

Wahrscheinlich viel zu spät, um das zu beantworten, aber hier geht es ...

In der Dokumentation zu LiveValidation.remove heißt es: "Sie müssen genau die Argumente übergeben, mit denen Sie die Validierung hinzugefügt haben". Obwohl die Validierungsfunktion (Validate.Inclusion) identisch ist, wird das Parameterobjekt jedes Mal anders sein. Es spielt keine Rolle, dass es "gleich aussieht" (dh das Ergebnis sollte den Wert jeder Eigenschaft zwischen dem Objekt, das Sie hinzugefügt haben, und dem Objekt, das Sie entfernt haben, vergleichen), es bedeutet, dass es sein muss gleiches Objekt . Die einzige Möglichkeit, dies sicherzustellen, ist das Verschieben der Deklaration des Parameterobjekts außerhalb des Rückrufs, an dem Sie das Validierungsobjekt manipulieren, so dass es nur einmal und nicht jedes Mal, wenn der Callback aufgerufen wird, erstellt wird / p>

Hier ist der Code (ich habe Ihre IDs umbenannt, BTW). Ich stellte auch sicher, dass die Validierungsprüfung nur einmal hinzugefügt werden konnte.

%Vor%     
jmbucknall 08.06.2011 23:44
quelle

Tags und Links