Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get the 'controlToValidate' property on ClientValidationFunction?

Lets say I have this code.

<asp:TextBox ID="TextBox1" runat="server" />

<asp:CustomValidator ID="CustomValidator1" runat="server"
    ClientValidationFunction="ValidationFunction1"
    ControlToValidate="TextBox1"
    Display="Dynamic" />

And a validationFunction:

function ValidationFunction1(sender, args)
{
}

And i would like to know if, inside the function I could get the Control to validate something like:

var v = sender.ControlToValidate;
like image 662
DJPB Avatar asked Sep 03 '10 13:09

DJPB


2 Answers

Actually sender.controltovalidate gives the ClientID of the control. So this seems like a solution.

function ValidationFunction1(sender, args){
    var v = document.getElementById(sender.controltovalidate);
}

I tried and it worked for me. Please notify if it works.

like image 101
Musa Hafalır Avatar answered Nov 15 '22 14:11

Musa Hafalır


Not verified, just a hint:

var v = document.getElementById('<%=CustomValidator1.FindControl(CustomValidator1.ControlToValidate).ClientID>%');

of course you could simply do it like:

var v = document.getElementById('<%=TextBox1.ClientID%>');

if you know exactly what you're validating. The first method is good when the control to be validated is set dynamically and you don't know beforehand which one it will be.

Also FindControl() might return null so you'd need to test for that too in order to avoid an exception.

Hope this helps.

like image 42
CyberDude Avatar answered Nov 15 '22 13:11

CyberDude