2011-01-05 7 views
1

Ich habe einen benutzerdefinierten Validator, in dem das Skript, das das Steuerelement überprüft, clientseitiges JavaScript ist.ASP.NET Custom Validators - Page.Validate ("groupName") nicht feuern?

In meinem VB-Code hinter für die Website rufe ich Page.Validate("groupName"), aber mein Validierungsskript wird überhaupt nicht ausgelöst. Ich habe einen Unterbrechungspunkt in meinem JavaScript platziert, aber es berührt nicht einmal mein Validierungsskript. Wenn ich die gleiche Funktion bei nicht-benutzerdefinierten Validatoren verwende, funktioniert es.

Ich denke, dass es unmöglich ist, mein clientseitiges Validierungsskript in meinem VB hinter Code über Page.Validate("groupName") zu nennen. Brauche ich unbedingt eine serverseitige Validierungsfunktion?

Hier ist ein Stück Code:

<asp:CustomValidator ID="ValidateTxt" runat="server" 
    ClientValidationFunction="validateTxt" 
    ControlToValidate="txtBox" 
    Display="Dynamic" 
    ValidationGroup="group1"> 
</asp:CustomValidator> 

<script type="text/javascript" language="javascript" > 
    function validateFinHeight(source, arguments) 
    { 
     if(arguments.Value % 2 == 0){ 
      arguments.IsValid = true; 
     }    
    } 
</script> 

VB Hinter Code:

Protected Sub cbo(ByVal sender As Object, ByVal e As System.EventArgs) Handles cbo.SelectedIndexChanged 
    Page.Validate("group1") 
End Sub 

Die Page.Validate("group1") ist meine JavaScript-Funktion nicht aufrufen.

+0

Ja, Sie müssen unbedingt serverseitige Validierung, da ein Benutzer Ihre Javascript-Prüfungen umgehen und senden Sie, was Sie wollen, auf Ihr Formular. Der einzige Weg, um sicher zu sein, ist auf der Serverseite zu überprüfen. – Greg

+0

Ich mache mir keine Sorgen über die Umgehung der Benutzer, da dies eine einfache Webanwendung ist, die nur von 3-4 Personen in der Firma, in der ich arbeite, verwendet wird. Es wird nicht für die Öffentlichkeit zugänglich sein, wo Leute so dreckige Sachen ausprobieren werden. – Johnrad

Antwort

3

Page.Validate wird zur Validierung bei Server Seite verwendet. Wenn Sie die clientseitige Validierung auslösen möchten, rufen Sie die Funktion Page_ClientValidate("group1") über Ihren JavaScript-Code auf.