天天看點

RequiredFieldValidator + OnClientClick issue

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:RequiredFieldValidator id="rq1" ControlToValidate="txtName" ErrorMessage="Name cannot be blank" Display="Dynamic" 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.

   if(Page_ClientValidate())

      return confirm('Do you want to proceed?');

Page_BlockSubmit=false;  //當頁面中有其他不需要驗證的按鈕或下拉框時一定要加上這句話,否則其他下拉框第一次送出時不會觸發背景代碼

   return false;

Another discovery today !

    本文轉自永春部落格園部落格,原文連結:http://www.cnblogs.com/firstyi/archive/2006/12/26/604216.html,如需轉載請自行聯系原作者

繼續閱讀