2010-01-27 12 views
8

Ich möchte einen ASP.NET RequiredFieldValidator mit JavaScript deaktivieren. Tatsächlich verwende ich den folgenden Code:ASP.NET Validierung Zusammenfassung: Wie Validator mit JavaScript zu deaktivieren?

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

Dies deaktiviert den Validator. Aber mein Problem ist, dass ich eine ValidationSummary verwende. Und diese Zusammenfassung zeigt die Validierungsnachricht, auch wenn ich den Validator deaktiviere.

Kann mir jemand sagen, wie man den Validator auch in der ValidationSummary deaktiviert?

+0

Warum den Validator alle zusammen nicht entfernen? – ram

+0

Ich denke, Ram hat Recht ... du musst es komplett entfernen. – Bryan

Antwort

9

Die Lösung besteht darin, einen Aufruf von ValidationSummaryOnSubmit() hinzuzufügen, nachdem Sie den Validator deaktiviert haben.

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

Sie können eine Datei WebUIValidation.js auf dem Entwicklungscomputer genannt finden, die die Client-Seite JavaScript-Funktionen, die von dem ASP.NET-Validierungsprozess verwendet wird, enthält. Die Funktionen sind gut benannt und es ist im Allgemeinen ziemlich einfach herauszufinden, was jeder von ihnen tut.

+0

Hallo Jason! Danke, ich werde es morgen versuchen. :) – Torben

+0

Das funktioniert, danke! – Torben

+0

Gute Arbeit, Jason. Klappt wunderbar – koenmetsu

0

Vielleicht können Sie versuchen, EnableClientScript=true; einzustellen und die Zusammenfassung ausblenden, indem Sie den CSS-Anzeigestil auf "none" setzen, wenn Sie Ihren Validator deaktivieren. Die Zusammenfassung wird als div gerendert und ist ausgeblendet, wenn keine Zusammenfassung angezeigt wird.

+0

Dies wird nicht funktionieren. EnableClientScript beeinflusst nur, wie die Seite gerendert wird ... danach ist es nutzlos. Torben muss den Validator auf der Client-Seite deaktivieren. – Bryan

0

Schauen Sie sich den Javascript-Code an, der für die Validatoren auf der Client-Seite generiert wurde. Ich glaube, dass Sie die Gültigkeitsbereichspannen aus dem "Page_Validators" -Array entfernen müssen. Die Element-ID stimmt mit der Validator-ID überein.

Dies ist nur eine Theorie. :) Lass es uns wissen, wenn es funktioniert, weil ich interessiert bin.

0

ValidatorEnable() nicht für mich arbeiten, aber das tat

document.getElementById("<%=RequiredFieldValidatorId.ClientID %>").enabled = true; 
Verwandte Themen