Tuesday, October 03, 2006

[ASP.NET] RequiredFieldValidator + OnClientClick issue

OnClientClick property was introduced in ASP.NET 2.0 to eliminate the need of developers to add the client-side "onclick" to a control programmatically. For instance,

JS script

function ConfirmMe()
{
   return confirm("Do you want to proceed?");
}


ASPX

<asp:TextBox id="txtName" runat="server"/>
<asp:Button id="btnSubmit" OnClientClick="return ConfirmMe()" Text="Submit" runat="server"/>


Well, that is pretty straightforward. BUT, it goes weird when you have a validator control (eg. RequiredFieldValidator) that is used to validate the "txtName" textbox server control. For instance,


<asp:TextBox id="txtName" runat="server"/>

<asp:RequiredFieldValidator id="rq1" ControlToValidate="txtName" ErrorMessage="Name cannot be blank" Display="Dynamic" runat="server"/>

<asp:Button id="btnSubmit" OnClientClick="return ConfirmMe()" Text="Submit" runat="server"/>


Whenever you press the button with no textbox value, the client-side confirmation dialog will be invoked first before the validator message is able to show up. This isn't what we expected it to behave. I tried several ways to overcome this problem, including using CLIENT CALLBACK, disabling the CauseValidation, but it failed. Finally, I was able to find a solution by adding JUST ONE line in the JS script.

function ConfirmMe()
{
   if(Page_ClientValidate())
      return confirm('Do you want to proceed?');

   return false;
}



Another discovery today !

16 comments:

Yossi said...

It's worked!
Thanks!

家勤 said...

Thanks god!
That's wat i really need!!

Thank you very much!

Senthil Kumar said...

ping back from
http://skurocks.blogspot.com/

Mowie_X said...

This post was so #%^#^# metal.. thank you!!

Hemangi said...

Thank you very much...
After long time, it solved my problem...

Once again Thanks!!!

RubenL said...

Nice!!!!

Thank you so much!!

Geetika said...

Hi, I am getting problem in my code, can u pls tell me where i am wrong?
"i am not able to paste my ASP.NEt code"
Any pointers how to debug why I am not able to go to the location specified in location.href?

Many Thanks

Escape said...

Thank you very much..

Amir Rajan said...

yet another thank you!

ravata_01 said...

thank you very much ! I'm no trouble with this

ricky said...

Obrigado, valeu amigo...

Nanthakumar said...

it's Great Post.!

Thank you very much!

ShurikEv said...

thx

Charlie said...

It is what I was looking for. Thaanks a lot.

Asif said...

Thanks it solved my problem after Long time !

preethi s said...

Given so much information in it. its very useful .perfect explanation about Dot net Required field validator and onclickissue.Thanks for your valuable information.
dot net training in chennai velachery |
dot net training institute in velachery