7

Mam aplikacji ASP.NET MVC 4 który używa jQuery.validation.js wtyczek i MVC za jQuery.validation.unobtrusive. js. Używam adnotacji danych w moim modelu widoku, aby sprawdzić, czy dane wejściowe pola tekstowego są liczbą całkowitą.jQuery.Validation.Unobtrusive walidacja po stronie klienta działa tylko wtedy, gdy skrypty są na widoku strony

To (zagnieżdżone) widok jest ładowany w widoku macierzystego, używając ...

<% Html.RenderPartial("New"); %> 

Jeden pierwszy inital ładowania strony, działa sprawdzanie poprawności po stronie klienta. Ale jakiekolwiek ponowne wczytanie zagnieżdżonego widoku za pomocą wywołania ajax, sprawdzanie poprawności po stronie klienta już nie działa. Dlaczego?

Aktualizacja (przykład kod z Webdeveloper za roztworu poniżej)

$.validator.unobtrusive.parse($('form')); 

Przykład:

var saveAndUpdate = function (url) { 
    var myForm = $('form', $('#TheDivThatContainsTheNewHTML')); 
    $.ajax({ 
     url: url, 
     type: 'POST', 
     data: myForm.serialize(), 
     success: function (result) { 
      $('#TheDivThatContainsTheNewHTML').html(result); 
      $.validator.unobtrusive.parse($('#TheDivThatContainsTheNewHTML'));   
     }, 
     error: function (xhr, ajaxOptions, thrownError) { 
      alert(xhr.status); 
      alert(thrownError); 
     }, 
     dataType: 'html' 
    }); 
} 

Odpowiedz

10

But any reloading of the nested view with an ajax call, client side validation no longer works. Why is that?

Walidacja dotyczy na document ready, kiedy orzeźwiający strona zalecana ręcznie rozpocznij sprawdzanie poprawności dla Twoja forma.

Jak to:

$.validator.unobtrusive.parse("form"); 

samo pytanie: jquery.validate.unobtrusive not working with dynamic injected elements

+1

Dzięki! Zauważam również, że możesz rozwiązać ten problem, dodając jawnie znaczniki skryptów w widoku zagnieżdżonym, zamiast polegać na skryptach renderowanych przez stronę wzorcową. – duyn9uyen

+0

http://stackoverflow.com/questions/16310448/mvc4-custom-unobtrusive-validator-isnt-working tutaj jest dobry punkt, aby sprawdzić również – Andrei

Powiązane problemy