2009-04-08 12 views
2

Ich kann diesen CustomValidator nicht funktionieren.ASP.NET CustomValidator Clientseite

Im <Kopf>:

<script language="javascript" type="text/javascript"> 
    function ValidateFile(sender, args){ 
     alert("Hi"); 

     args.IsValid = document.getElementById("fuFile").value != "" || 
        document.getElementById("c101_c7").value != ""; 
    } 
</script> 

im Körper:

<asp:FileUpload ID="fuFile" runat="server" size="70"/> 
<asp:TextBox ID="c101_c7" class="textbox" runat="server"/> 
<asp:CustomValidator ID="vldFile" runat="server" ClientValidationFunction="ValidateFile" 
    ErrorMessage="You must either upload a file or provide a URL of a file."></asp:CustomValidator> 

Was im args.IsValid sein sollte, wenn entweder das Fileupload oder TextBox in gefüllt werden muss?

Antwort

0

Dies funktioniert

document.getElementById("ctl00_ContentPlaceHolder1_fuFile").value 
2

verwenden Sie nur eine normale Schaltfläche, um die Validierung auszulösen?

Implementieren Sie Validierungsgruppen an anderer Stelle in diesem Code?

+0

Oh danke! Ich habe nicht bemerkt, dass der Button eine Validierungsgruppe hat. Aber ich denke, ich habe diesen Teil immer noch falsch verstanden. Kennen Sie den richtigen Weg? args.IsValid = document.getElementById ("fuFile"). Value! = "" || document.getElementById ("c101_c7"). Value! = ""; – Aximili

0

Sie müssen die ControlToValidate-Eigenschaft für den benutzerdefinierten Validator festlegen. Derzeit ist der Validator nicht mit einem Steuerelement verbunden.

Außerdem bin ich sicher, dass Sie gerade diesen Teil des Markups nicht gepostet haben, aber Sie müssen ein Steuerelement haben, das ein Postback durchführt und Validierung als Teil seines Postbacks verursacht. Ein Button wird dafür funktionieren.

5

ich es hilfreich, um tatsächlich zu lassen, was der Code hinter informieren Sie Ihren JavaScript-Code der Client-Seite ID der Steuerung ist, da es möglich ist, ist es anders als das, was Sie denken würde (basierend auf welchem ​​entscheidet ASP .NET zu tun):

document.getElementById('<%=fuFile.ClientID %>'); 
3
<script type="text/javascript"> 
//<![CDATA[ 
    function validateField(sender, args) {   
     var regExp = /(^[a-zA-Z]{2,50})$/; 
     var val = document.getElementById(sender.controltovalidate).value; 
     args.IsValid = regExp.test(val); 
} 
//]]> 
</script> 
Verwandte Themen