Nie mogłem uzyskać funkcji sprawdzania poprawności strony klienta z następującym częściowym widokiem. Ten widok jest w div divetettings div w widoku nadrzędnym. Próbowałem wiele rzeczy od stackoverflow i innych stron, nic nie wydaje się działać. Jakieś pomysły?Sprawdzanie poprawności strony jQuery klienta nie działa w częściowym widoku MVC3
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
@using (Ajax.BeginForm("CreateT", "TAdmin", null,
new AjaxOptions { HttpMethod = "Post", UpdateTargetId = "divTSettings"},
new { id = "CreateTForm" }))
{
<div>
<label>Name:</label>
<input type="text" name="tName" id="tName"/>
@Html.ValidationMessage("tName")
<input type="submit" value="Submit"/>
</div>
}
<script type="text/javascript">
$(function() {
$('#CreateTForm').validate({
rules: {
tName: {
required: true
}
},
messages: {
tName: {
required: 'Name required'
}
}
});
$("#CreateTForm").removeData("validator");
$("#CreateTForm").removeData("unobtrusiveValidation");
$.validator.unobtrusive.parse("#CreateTForm");
});
</script>
Dziękuję za odpowiedź, ale widok częściowy nie jest ładowany przez AJAX, jest ładowany przez obiekt nadrzędny za pomocą modelu nadrzędnego. Tworzy post AJAX, ale sprawdzanie poprawności nie działa nawet przy pierwszym ładowaniu. I jak widzisz, mam inicjacje sprawdzania poprawności wspomniane w procedurze ładowania dokumentu. – blue
Och, nie musisz wykonywać tych inicjalizacji na document.load. Wszystko, co musisz zrobić, to dołączyć do swojej strony skrypty jquery, jquery.validation i jquery.validation.unobtrusive. Również zgodnie z kodem, który pokazałeś, wydajesz się, że subskrybujesz obsługę ".validate" formularza i deklarujesz jakąś niestandardową walidację. Ale nie jest tak, jak działa sprawdzanie poprawności ASP.NET MVC i jquery. Naprawdę musisz wybierać między używaniem adnotacji danych w swoim modelu widoku (takich jak atrybut "[Wymagany]") lub całkowicie definiującym niestandardowe reguły sprawdzania poprawności strony klienta. –
Jeśli zdecydujesz się zapisać własne reguły sprawdzania poprawności (subskrybuj metodę ".validate" formularza), powinieneś usunąć ze strony skrypt "jquery.unobtrusive.validation.js". Te 2 rzeczy są całkowicie niezgodne. Decyzja należy do Ciebie: możesz użyć wbudowanego środowiska ASP.NET MVC (i używać atrybutów sprawdzania poprawności, takich jak "[Wymagany]" w modelu widoku) lub niezależnie używać wtyczki jquery.validate i pisać Twoje niestandardowe reguły. Ale nigdy nie mieszaj tych dwóch, ponieważ są niezgodne. –