8

Ich habe die Methode here beschrieben, um meine Daten Annotation Nachrichten zu lokalisieren und im Grunde funktioniert es gut in normalen Form Posts. Ich kann die lokalisierte Überprüfungsmeldung auch auf der Client-Seite sehen.jQuery unauffällige Validierung ignoriert Daten-val-erforderlichen Nachricht in MVC3

Problem tritt jedoch auf, wenn ich eine Teilansicht habe, die die zu validierenden Eingabefelder hat und mit einem Ajax-Aufruf geladen wird. Aus irgendeinem Grund erhalte ich die Standardvalidierungsnachricht ("Dieses Feld ist erforderlich") anstelle meiner lokalisierten Nachricht, die im Datenwert-Erforderlichen Attribut des Elements festgelegt ist.

ich überprüft haben folgende Möglichkeiten:
1. Ich eingeschlossen haben beide "jquery.validate.min.js" und "jquery.validate.unobtrusive.min.js".
2. Ich überprüfte die Ajax-Antwort und es enthält Daten-val-erforderlichen Attribut mit lokalisierten Nachricht.

Ich habe bereits versucht, die folgenden Lösungen:
1. Ich habe versucht, die Ajax-Antwort-Parsing (die nicht funktioniert) als .validator.unobtrusive.parse $ ('Form')
2. Parsing dynamische Inhalte für Validierung wie beschrieben here. Immer noch keine Lösung.

Ich habe eine dringende Frist und das beunruhigt mich.

+0

Versuchen Sie, sofort zu überprüfen, nachdem der Inhalt aus der teilweisen Hinzufügen oder wird der dynamische Inhalt normalerweise mit dem Rest der Form vorgelegt? –

+0

Der dynamische Inhalt wird normalerweise mit dem Rest des Formulars übermittelt. – sprisoner

+0

Endlich hatte einen Durchbruch. Es gab zwei Formen auf meiner Seite, eine auf der Indexseite und eine auf der Teilseite. Die Schaltflächen, auf deren Klick das Formular gesendet werden sollte, befanden sich auf der Indexseite. Ich habe die Schaltflächen in der Teilseite so verschoben, dass sie sich innerhalb des Formularelements der Teilseite befindet, und siehe unten. es hat gut funktioniert. Obwohl das Problem gelöst ist, weiß ich nicht, was das Problem verursacht hat und wie das Verschieben der Tasten in der innersten Form es gelöst hat? Mein Problem ist gelöst, aber wenn jemand mir helfen kann, die Ursache zu verstehen, könnte ich es als eine Antwort markieren und diese Frage schließen. – sprisoner

Antwort

3

Ich denke du hast es schon versucht: stackoverflow.com/questions/4406291/jquery-validate-unobtrusive-not-working-with-dynamic-injected-elements - die Antwort von Steve Lamb hat mir am meisten geholfen.

Grundsätzlich müssen Sie den Validator neu zu initialisieren, wenn Sie den Seiteninhalt ändern, da der Validierungscode eine Liste erstellt, die Kontrollen verfolgen sie nur einmal überprüfen muss, beim Laden der Seite ...

I schien auch zusätzlichen Code hinzuzufügen und sicherzustellen, dass die Eingaben richtig benannt wurden. Gib mir einen Moment und ich werde den Code ausgraben. - hmm, tut mir leid, dass dieser Code Teil einer Client-App war, und ich kann ihn nicht posten. Nicht zu sicher, es würde einen Unterschied sowieso gemacht hat ...

+0

Dank Tieson, ich hatte das müde. Ich habe es jedoch versehentlich gelöst. Lies meinen Kommentar unter der Frage. Immer noch verwirrt, was das Problem war. – sprisoner

0

Nur falls jemand in dieser Frage fallen, wie die Dokumentation wird, ist es erforderlich, dass Ihr Feld ein name Attribut:

Mandated: Ein 'name'-Attribut ist für alle zu validierenden Eingabeelemente erforderlich, und das Plugin funktioniert nicht. Ein "name" -Attribut muss auch für das Formular eindeutig sein, da das Plugin so alle Eingabeelemente verfolgt. Jede Gruppe von Radio- oder Checkbox-Elementen teilt jedoch denselben "Namen", da der Wert dieser Gruppierung ein einzelnes Teil der Formulardaten darstellt.

Source