Ho un ASP.NET MVC 4 App che utilizza le jQuery.validation.js di plugin e di MVC jQuery.validation.unobtrusive. js. Uso le annotazioni dei dati sul mio modello di visualizzazione per convalidare l'input di una casella di testo come un numero intero.jQuery.Validation.Unobtrusive cliente validazione lato funziona solo quando gli script sono sulla visualizzazione di una pagina
Questo (nested) Vista viene caricato all'interno di una vista padre utilizzando ...
<% Html.RenderPartial("New"); %>
Uno il primo caricamento della pagina iniziale che, validazione lato client funziona. Ma qualsiasi ricarico della vista annidata con una chiamata ajax, la validazione lato client non funziona più. Perché?
Aggiornamento: (Esempio di codice dalla soluzione di webdeveloper sotto)
$.validator.unobtrusive.parse($('form'));
Esempio:
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'
});
}
Grazie! Inoltre noto che è possibile risolvere questo problema aggiungendo esplicitamente i tag dello script nella vista nidificata, invece di fare affidamento sugli script resi dalla pagina Master. – duyn9uyen
http://stackoverflow.com/questions/16310448/mvc4-custom-unobtrusive-validator-isnt-working qui è un buon punto da controllare – Andrei