2009-04-08 7 views
2

Je n'arrive pas à faire fonctionner ce CustomValidator.Côté client ASP.NET CustomValidator

Dans la tête < >:

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

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

Dans le corps:

<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> 

Quel devrait être dans le args.IsValid si soit le FileUpload ou TextBox doit être rempli?

Répondre

0

Cela fonctionne

document.getElementById("ctl00_ContentPlaceHolder1_fuFile").value 
2

utilisez-vous simplement un bouton normal pour déclencher la validation?

Implémentez-vous des groupes de validation ailleurs dans ce code?

+0

Oh merci! Je n'ai pas remarqué que le bouton a un groupe de validation. Mais je pense que j'ai encore cette partie mal. Connaissez-vous la bonne façon de le faire? args.IsValid = document.getElementById ("fuFile"). Value! = "" || document.getElementById ("c101_c7"). Value! = ""; – Aximili

0

Vous devez définir la propriété ControlToValidate sur le validateur personnalisé. Actuellement, le validateur n'est connecté à aucun contrôle. En outre, je suis sûr que vous n'avez simplement pas publié cette partie du balisage, mais vous devez avoir un contrôle qui effectue une publication et provoque la validation dans le cadre de sa publication. Un bouton fonctionnera pour cela.

5

je trouve utile de laisser en fait le code derrière dire votre code JavaScript que l'ID côté client du contrôle est, car il est possible, il est différent de ce que vous pensez (basé sur ce que ASP .NET décide de faire):

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> 
Questions connexes