Reputation: 29464
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
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
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
Reputation: 29464
This works
document.getElementById("ctl00_ContentPlaceHolder1_fuFile").value
Upvotes: 0
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
Reputation: 8875
are you just using a normal button to trigger the validation?
Are you implementing validationgroups anywhere else in this code?
Upvotes: 2