jQuery-Validierung - Formular.valid() immer true zurück
Habe ich die situation, wenn ich versuche, um zu überprüfen, ob ein Formular gültig ist, aber form.valid() gibt immer true zurück. Aber wenn ich versuchen, zu überprüfen, die der individuellen Kontrolle, gibt Sie false zurück.
Dies ist mein form:
<div class="profilestagsedit">
@using (Html.BeginForm("", "", FormMethod.Post, new { id = "tagsform" }))
{
@Html.ValidationMessageFor(x => x.EditTagsText)
@Html.TextBoxFor(p => p.EditTagsText, new
{
@id = "txtprofileedittags"
})
}
</div>
Dies ist mein viewmodel:
[Required(AllowEmptyStrings = false, ErrorMessage = "Please enter at least one Tag ")]
public string EditTagsText { get; set; }
Dies ist der jQuery-code:
$('#tagsform').removeData("validator");
$('#tagsform').removeData("unobtrusiveValidation");
$.validator.unobtrusive.parse('#tagsform');
$('#tagsform').validate();
Und auf die Schaltfläche speichern klicken:
var isValid = $('#tagsform').validate().element($('#txtprofileedittags')); <-- false
$('#tagsform').valid() true <--
Möchte ich die form.valid() return false sowie, was mache ich falsch?
- vielleicht sollten Sie 'erforderlich' zur Eingabe
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie erforderlich, um die Eingabe
Finden Sie unter arbeiten demo hier
Unauffällige HTML 5 kompatible Attribute beschreiben die Prüfer angebracht werden, um die input-Felder
data-val="true"
.Sehen mehr info hier
Schon die Frage ist eine akzeptierte Antwort, aber ich glaube, dass ich gefunden habe, spezifische Antwort. Ich habe festgestellt, dass wenn der ERSTE validierte element in der form 'name' - tag, dann funktioniert alles wie man es erwarten würde (das ist, .valid() den Wert false zurück, wenn das Formular ungültig ist). Die akzeptierte Antwort, die bequem enthalten ein 'name' - tag und damit hat es geklappt.
In den normalen Formen, Sie müssen auf jeden Fall name-tags, weil das ist, was verwendet wird, wenn die Daten wird an den server gesendet werden. Aber in modernen Umgebungen, wie jene, die mit Knock-out, es gibt keinen Grund, einen 'name' - tag, denn der Daten-Bindung funktioniert, um Ihre Daten zu Modell aktualisiert.
War ich verweisen auf die beiden Dateien:
entfernen Verweis auf jquery.validate.unobstrusive.js, fixiert es für mich
hoffe, das hilft jemandem