Ich habe die hier beschriebene Methode hier verwendet, um meine Datenannotationsnachrichten zu lokalisieren, und im Grunde funktioniert es in normaler Form Beiträge. Ich kann die lokalisierte Überprüfungsmeldung auch auf der Clientseite sehen.
Das Problem tritt jedoch auf, wenn ich eine Teilansicht mit den zu validierenden Eingabefeldern habe, die mit einem Ajax-Aufruf geladen werden. Aus irgendeinem Grund erhalte ich die Standardüberprüfungsmeldung ("Dieses Feld ist erforderlich") anstelle meiner lokalisierten Nachricht, die im Attribut "value-erforderlich" des Elements festgelegt ist.
Ich habe folgendes verifiziert:
1. Ich habe sowohl "jquery.validate.min.js" als auch "jquery.validate.unobtrusive.min.js" eingefügt.
2. Ich überprüfte die Ajax-Antwort und es enthält Data-val-erforderlichen Attribut mit lokalisierter Nachricht.
Ich habe bereits folgende Lösungen ausprobiert:
1. Ich habe versucht, die Ajax-Antwort (die nicht funktionierte) als $ .validator.unobtrusive.parse ('form') zu parsen
2. Dynamische Inhalte für die Validierung wie beschrieben hier analysieren. Immer noch keine Lösung.
Ich habe eine dringende Frist und das beunruhigt mich.
Ich denke, Sie haben das schon versucht: stackoverflow.com/ Fragen / 4406291 / jquery-validate-unaufdringlich-nicht-arbeiten-mit-dynamisch-injizierten-Elementen - die Antwort von Steve Lamb hat mir am meisten geholfen.
Grundsätzlich müssen Sie den Validator immer neu initialisieren, wenn Sie den Seiteninhalt ändern, da der Validierungscode eine Liste zum Verfolgen der Steuerelemente erstellt, die nur einmal beim Laden der Seite überprüft werden müssen ...
Ich schien auch etwas zusätzlichen Code hinzufügen zu müssen 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 sicher, dass es einen Unterschied gemacht hätte ...
Für den Fall, dass jemand diese Frage eingibt, wie in der Dokumentation angegeben, ist es erforderlich, dass Ihr Feld ein Attribut name
hat:
Mandated: Ein Attribut 'name' 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 den gleichen 'Namen', da der Wert dieser Gruppierung ein einzelnes Teil der Formulardaten darstellt.
Tags und Links asp.net-mvc-3 jquery data-annotations unobtrusive-validation