ho attaccato un gestore di eventi alcuni pulsanti, che ha alterato le impostazioni dell'oggetto validatore in quella forma particolare.
$(".jsCancel").click(function (e) {
$(e.currentTarget).closest("form").validate().settings.ignore = "*"
});
Questo ha funzionato come un fascino per me in MVC3.
Non so se questo ti aiuta in particolare, ma dal momento che utilizzo il modulo ajax, ho dovuto allegare l'evento a questi pulsanti ogni volta che il contenuto del modulo ajax è stato sostituito, utilizzando l'evento ajax success. Il codice completo che reparses la forma e attribuisce l'evento per i pulsanti Annulla è:
$(document).ajaxSuccess(function (event, xhr, settings) {
var $jQval = $.validator, adapters, data_validation = "unobtrusiveValidation";
$jQval.unobtrusive.parse(document);
$(".jsCancel").click(function (e) {
$(e.currentTarget).closest("form").validate().settings.ignore = "*"
});
});
Grazie. Ho risolto questo problema aggiungendo la classe "cancel" al mio pulsante quando i contenuti sono stati generati. Ho una domanda per te Cosa significa questo selettore ".jsCancel"? E hai provato a usare questo $ (". JsCancel"). Live ("click", ... invece questo $ (". JsCancel"). Click (function (e) ... – Sergii
Aggiungendo la classe cancel non lavoro per me, quindi il mio work-around. Di solito prefixiamo le classi css con js, se sono usate per trovare elementi piuttosto che per lo styling, metto quella classe sui miei submit-buttons che non dovrebbero validare il form.) o su() funzionerebbe pure, io non sono così abituato a usarlo. – Skymt