2011-01-24 15 views
7

Nella mia pagina asp.net mvc è necessario disporre di un pulsante "clear" che reimposta determinati campi di input e cancella tutti i messaggi di errore. Cancellare gli input va bene, ma poiché i messaggi di convalida sono generati da asp.net mvc javascript non è ovvio per me come eliminarli?Chiaro messaggi di convalida MVC ASP.Net con jQuery

Aggiornamento: Questo ha funzionato bene per me.

$(".field-validation-error").empty(); 
+0

Sono i messaggi di errore sul lato server che desideri eliminare? –

+0

Pensavo fossero generati dal lato client, ma ho appena collegato il violinista e dopo tutto sono stati generati dal lato server. Sarebbe bello se potessi ancora rimuoverlo premendo un pulsante sul client senza richiedere una nuova presentazione. – sipwiz

risposta

4

È possibile visualizzare il codice html generato nel browser e quindi semplicemente svuotarlo tramite jquery, ad es. empty()

per trovare il codice generato:

  • postback Normale: View "codice sorgente" della pagina nel browser e cercare il messaggio di errore. Trova il genitore div per svuotarlo.
  • chiamata Ajax: fare clic con il pulsante destro del mouse e controllare gli elementi in Chrome (altri browser moderni lo chiamano in modo diverso ma dovrebbero avere lo strumento). Questo ti darà l'html generato allo stato corrente (dopo la chiamata ajax). Trova il genitore div e svuotalo.

Spero che questo aiuti

0

Avere un pulsante ingresso di reset potrebbe aiutare, ma ripristina solo la forma al suo stato quando il modulo è stato caricato.

Quando si desidera ripristinare tutti i valori, di solito mascherano un collegamento ipertestuale come pulsante di ripristino. Quando qualcuno fa clic, fa semplicemente una nuova richiesta GET per il modulo. Poiché l'azione del controller per una richiesta GET restituisce appena un modello vuoto nuovo di zecca, ha lo stesso effetto di un pulsante "clear".

+0

Sì, potrebbe essere il modo più semplice, ma sarei comunque interessato a sapere se c'è un modo per farlo lato client. – sipwiz

+0

Sì, probabilmente avrei dovuto leggere il tuo titolo "con jQuery". – danludwig

1

Una funzione semplice e riutilizzabile jQuery è possibile chiamare qualsiasi oggetto jQuery:

$.fn.clearErrors = function() { 
    $(this).each(function() { 
     $(this).find(".field-validation-error").empty(); 
     $(this).trigger('reset.unobtrusiveValidation'); 
    }); 
}; 

Usage:

question.clearErrors(); 

risposta originale: https://stackoverflow.com/a/16165831/114029

1
$('.field-validation-error').text("") 
+2

Aggiungi alcune spiegazioni alla tua risposta per renderla utile agli altri lettori. –

Problemi correlati