Aximili
Aximili

Reputation: 29464

ASP.NET CustomValidator client side

I can't get this CustomValidator working.

In the <head>:

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

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

In the body:

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

What should be in the args.IsValid if either the FileUpload or TextBox has to be filled in?

Upvotes: 2

Views: 5886

Answers (5)

Hakan
Hakan

Reputation: 31

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

Upvotes: 3

Brandon Montgomery
Brandon Montgomery

Reputation: 6986

I find it helpful to actually let the code behind tell your JavaScript code what the client-side ID of the control is, since it's possible it's different than what you would think (based on what ASP .NET decides to do):

document.getElementById('<%=fuFile.ClientID %>');

Upvotes: 5

Aximili
Aximili

Reputation: 29464

This works

document.getElementById("ctl00_ContentPlaceHolder1_fuFile").value

Upvotes: 0

Daniel
Daniel

Reputation: 1793

You need to set the ControlToValidate Property on the custom validator. Currently the validator is not hooked up to any control.

Also, I'm sure you just didn't post this part of the markup, but you need to have a control that does a postback and causes validation as part of its postback. A button will work for this.

Upvotes: 0

andy
andy

Reputation: 8875

are you just using a normal button to trigger the validation?

Are you implementing validationgroups anywhere else in this code?

Upvotes: 2

Related Questions