2013-09-03 13 views
19

Mam Admin stronę, na której użytkownik kliknie na linki i odpowiedniego PartialView, zawierającą formularz internetowej zostaje załadowany wewnątrz szczególny div na stronie Admin za pomocą Ajax.MVC Walidacja strona 4 klient nie działa na formularzu, który jest ładowany przy użyciu Ajax

Cała

"~/Scripts/jquery-2.0.3.js", 
"~/Scripts/jquery.unobtrusive-ajax.js", 
"~/Scripts/jquery.validate.js", 
"~/Scripts/jquery.validate.unobtrusive.js" 

są odniesione w Admin strony i gdy PartialView jest załadowany, walidacja strona jQuery klient nie będzie działać.

, ale kiedy odwołuję się do tych skryptów w ramach PartialView, wszystko działa dobrze, ale nie mam zamiaru robić tego dla każdego PartialView, ponieważ są one liczne i za każdym razem, gdy się ładują, co najmniej dwa z tych plików .js muszą być ponownie żądanym z serwera ponownie.

Czy istnieje sposób, w jaki mogę mieć te skrypty wewnątrz mojej strony nadrzędnej (Admin) bez tego problemu?

+2

Walidacja jQuery prawdopodobnie musi uświadomić sobie nowe znaczniki załadowane z Częściowego Widoku. Miałem ten problem z innymi wtyczkami jQuery, które muszą zostać "ponownie zastosowane" do nowego znacznika, który został załadowany przez ajax. – asymptoticFault

Odpowiedz

47

Trzeba to na każdej jednej z częściowym widokiem:

$(document).ready(function() { 

    $.validator.unobtrusive.parse("#YourFormID"); 

}); 

Zasadniczo walidacja nie jest związana na dynamicznie renderowane formie ...

+0

Wszystko działało dobrze;) Wielkie dzięki Marko! – Ali

+2

Uratowałem mój dzień, tnx! – Ako

+0

Tak! Kocham to miejsce! Wielkie dzięki! –

1

Zasadniczo walidator analizuje elementy na dokumencie gotowym. Możesz zadzwonić na własną rękę, jeśli chcesz, jednak ktoś już zadał pytanie na ten temat. a zaakceptowana odpowiedź prawdopodobnie nadal działa. Jedna z odpowiedzi zawiera link do postu na blogu, jeśli chcesz.

client side validation with dynamically added field

+0

Wielkie dzięki Chad! – Ali