jQuery Validierung - form.valid () gibt immer true zurück

8

Ich habe eine Situation, wenn ich versuche zu überprüfen, ob ein Formular gültig ist, aber form.valid () gibt immer wahr zurück. Aber wenn ich versuche, das einzelne Steuerelement zu validieren, gibt es false zurück.

Das ist meine Form:

%Vor%

Das ist mein Viewmodel:

%Vor%

Dies ist der jQuery-Code:

%Vor%

Und auf die Schaltfläche Speichern klicken:

%Vor%

Ich möchte, dass die form.valid () auch falsch zurückgibt, was mache ich falsch?

    
user636525 19.12.2013, 02:29
quelle

3 Antworten

3

Sie sollten die Eingabe zur Eingabe hinzufügen

%Vor%

Siehe Arbeitsdemo hier

Für unauffällige HTML 5-kompatible Attribute beschreiben Sie die Validatoren, die an die Eingabefelder data-val="true" angehängt werden.

Weitere Informationen hier

    
Nouphal.M 19.12.2013, 02:40
quelle
7

Die Frage hat bereits eine akzeptierte Antwort, aber ich glaube, dass ich eine spezifischere Antwort gefunden habe. Ich habe gefunden, dass, wenn das erste validierte Element in dem Formular ein "Name" -Tag hat, alles so funktioniert, wie Sie erwarten würden (das heißt, .valid () wird false zurückgeben, wenn das Formular ungültig ist). Die akzeptierte Antwort enthielt praktisch ein "Name" -Tag und so funktionierte es.

In normalen Formularen benötigen Sie unbedingt Namensschilder, da diese verwendet werden, wenn die Daten an den Server gesendet werden. Aber in moderneren Umgebungen, wie denen, die Knockout verwenden, gibt es keinen Grund, ein "Name" -Tag zu haben, da die Datenbindung funktioniert, um Ihr Datenmodell auf dem neuesten Stand zu halten.

    
Michael Bray 14.03.2014 01:33
quelle
-1

Ich habe auf beide Dateien verwiesen:

  • jquery.validate.js
  • jquery.validate.unobstrusive.js & lt; - Entferne diese Referenz!

Verweis auf jquery.validate.unobstrusive.js entfernen , für mich behoben

hoffe das hilft jemandem

    
Carlos R Balebona 21.05.2014 18:17
quelle