jQuery validator - Cannot call method 'call' undefined Fehler beim hinzufügen der Validierung dynamisch
Dies ist mein code zum update der jQuery Validierung dynamisch. In Dokument laden, was ich schaffen die Validierung. Dieser code wird verwendet zum aktualisieren der Telefon-Nummer Validierung dynamisch. Nach der Anwendung dieser überprüfung, wenn ich irgendetwas eingeben im Telefon-Nummer Textfeld bekomme ich nicht rufen Sie die Methode "call" undefined " Fehler.
$("#phone").rules("remove");
$("#phone")
.rules(
"add",
{
required:true,
minlength:5,
maxlength:20,
phoneUS:true,
messages:{
required: "Enter company phone number",
minlength:"Phone number should contain a minimum of 5 characters",
maxlength:"Phone number should contain a maximum of 20 characters",
phoneUS:"Enter valid phone number"
}
});
Vielen Dank im Voraus. Wie man dieses Problem lösen?
Sie hat diese Frage mit jquery-validation-engine. Das ist eine ganz andere plugin. Bearbeitet. Danke.
InformationsquelleAutor Anbu Raj | 2013-03-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es vier potenzielle Probleme.
1) Du bist fehlt eine schließende Klammer für die
messages
Abschnitt.DEMO: http://jsfiddle.net/A8HQU/2
2) Es ist ein bekannter bug wo hinzufügen
messages
mit derrules('add')
Methode bricht das plugin und/oder Regel. Stellen Sie unbedingt sicher, dass Sie auch jQuery Validierung version 1.11.1 oder besser.3) Die
phoneUS
Regel erfordert die Einbeziehung von dieadditional-methods.js
- Datei.4) Die
rules('add')
Methode muss kommen nach die.validate()
- Initialisierung-Funktion.Hinweis:
Bist du mit dem
phoneUS
Regel, sominlength
undmaxlength
sind völlig überflüssig ist, da diephoneUS
Regel ist bereits auf der Suche nach einem präzisen format/Länge.hast du den link, wo du 1.12? da die aktuelle version von jqueryvalidation.org 1.11
Ich hatte das gleiche problem mit 1.11.1 denn ich habe nicht die additional-methods.js Datei enthalten. Vielen Dank für die ausführliche Antwort!
InformationsquelleAutor Sparky
Ich hatte das gleiche problem, aber mit einer anderen Ursache. Das gleiche problem passiert, wenn ich eine Regel ist erforderlich": true," anstatt "required:true".
Dieser Fehler passiert, wenn Sie geben in Ihren Regeln eine überprüfung, dass keine entsprechende Methode. Durch Debuggen habe ich herausgefunden, dass die Ausnahme zeigt, die ich angegeben in der Regel "erforderlich" durch den Namen der Methode, war als "erforderlich". Es versucht, auf eine Methode innerhalb einer hashmap, und versucht .call () - selbst wenn die Methode nicht gefunden wird, die zu einer Ausnahme führt.
Wenn der plugin-Autor einfach warf einen benutzerdefinierten Fehler in diesem Fall erklärt, dass "Die Regel" erfordern "hat keine Methode" wäre es einfacher zu Debuggen & erkennen der typo.
Dies ist auch die gleiche Ursache das berüchtigte problem mit dem plugin Einreichen, obwohl Felder sind ungültig. Sehen & Stimme für mein Problem report - https://github.com/jzaefferer/jquery-validation/issues/1212
InformationsquelleAutor Josh Ribakoff
Als bezogenen Fehler, wenn Sie fügen Sie eine benutzerdefinierte Regel mit:
aber dann verweisen Sie in Ihren Regeln Erklärung mit dem falschen Namen:
erhalten Sie die gleichen
Cannot call method call of undefined
.InformationsquelleAutor tobylaroni
Stieß ich auf ähnliches problem zweimal vor kurzem und viel Zeit damit verbracht, zu versuchen, es herauszufinden, also werde ich verlassen, hier eine einfache Lösung. Und wenn der moderator meint, dass dies nicht der richtige Ort, lass es mich wissen.
Der Fehler passiert beim ausführen dieses Beispielcodes:
Warum? Aus irgendeinem Grund, wenn Sie explizit angeben:
Programm werfen den erwähnten Ausnahme. Dies ist der Fall, wenn ein oder BEIDE oben genannten Optionen auf "true". Auf der anderen Seite, wenn Sie setzen BEIDE auf 'false' oder EINE 'falsche' und entfernen Sie die andere, es funktioniert wie erwartet.
Das wichtigste: Wenn Sie löschen Sie oder kommentieren Sie eine dieser Optionen, die Sie entfernt, wird auf Standardwert "true" UND GEWANN"T werfen alle Fehler. So ist es möglich, anpassen der Validierung plugin genau so, wie Sie wollen, Sie müssen nur immer daran denken, nicht, um diese Optionen auf 'true' explizit.
Ich hoffe, dies hilft jemand, trotz der Tatsache, dass das eigentliche problem in dieser Frage für diese bestimmten Benutzer wurde bereits behoben.
true
ist kein Gültiger Wert." Es wurde auch gefragt, und beantwortet SO einige Male schon.InformationsquelleAutor rvnlord
Obige code funktioniert nicht weil es fehlt, ist
}
nach der property-Liste.InformationsquelleAutor karthick
Müssen Sie auch fügen Sie diese zusätzlichen Methoden
http://ajax.aspnetcdn.com/ajax/jquery.validate/1.13.1/additional-methods.js
InformationsquelleAutor Mina Marcos