2010-01-27 12 views
8

Desidero disabilitare un RequiredFieldValidator ASP.NET con JavaScript. In realtà sto usando il seguente codice:Riepilogo della convalida ASP.NET: come disabilitare il validatore con JavaScript?

function doSomething() 
{ 
    var myVal = document.getElementById('myValidatorClientID'); 
    ValidatorEnable(myVal, false); 
} 

Ciò disabilita il validatore. Ma il mio problema è che sto usando un ValidationSummary. E questo sommario mostra il messaggio di convalida, anche se disattivo il validatore.

Qualcuno può dirmi, come disabilitare anche il validatore nel ValidationSummary?

+0

Perché non rimuovere il validatore tutti insieme? – ram

+0

Penso che Ram abbia ragione ... dovrai rimuoverlo del tutto. – Bryan

risposta

9

La soluzione è aggiungere una chiamata a ValidationSummaryOnSubmit() dopo aver disabilitato il validatore.

function doSomething() 
{ 
    var myVal = document.getElementById('myValidatorClientID'); 
    ValidatorEnable(myVal, false); 
    ValidationSummaryOnSubmit(); 
} 

È possibile trovare un file chiamato WebUIValidation.js sul computer di sviluppo, che contiene il lato client JavaScript funzioni utilizzate dal processo di convalida ASP.NET. Le funzioni hanno un buon nome ed è generalmente abbastanza facile capire cosa fanno ognuna di esse.

+0

Hey Jason! Grazie, ci proverò domani. :) – Torben

+0

Funziona, grazie! – Torben

+0

Bel lavoro, Jason. Funziona come un fascino – koenmetsu

0

Forse si potrebbe provare a impostare il EnableClientScript=true; e nascondere la sintesi impostando il suo stile CSS display a nessuno quando si disattiva il tuo validatore. Il riepilogo viene visualizzato come div ed è nascosto quando non viene visualizzato alcun riepilogo.

+0

Questo non funzionerà. EnableClientScript riguarda solo il modo in cui la pagina viene renderizzata ... è inutile in seguito. Torben ha bisogno di disabilitare il validatore sul lato client. – Bryan

0

Guarda il codice javascript generato per i validatori sul lato client. Credo che dovrai rimuovere gli intervalli di convalida dall'array "Page_Validators". L'ID dell'elemento corrisponderà all'ID del Validatore.

Questa è solo una teoria. :) Facci sapere se funziona, perché sono interessato.

0

ValidatorEnable() non ha funzionato per me, ma questo ha fatto

document.getElementById("<%=RequiredFieldValidatorId.ClientID %>").enabled = true; 
Problemi correlati