OnClientClick代码阻止验证工作

时间:2012-01-18 22:54:08

标签: c# javascript jquery asp.net

我已经在asp.net按钮的OnClientClick属性中添加了代码,现在验证控件无效。当我删除OnClientClick代码时,验证工作。

我怎样才能使它们都起作用?

<asp:Button 
ID="btnNext" 
runat="server" 
Text="Save & Continue" 
SkinID="btnContinue" 
OnClick="btnNext_Click"  
OnClientClick="_changesMade=false; return true;" 
ValidationGroup="vgPreMedSchool" Width="176px" />

3 个答案:

答案 0 :(得分:7)

试试这个。

<asp:Button 
ID="btnNext" 
runat="server" 
Text="Save & Continue" 
SkinID="btnContinue" 
OnClick="btnNext_Click"  
OnClientClick="_changesMade=false; return Page_ClientValidate();" 
ValidationGroup="vgPreMedSchool" Width="176px" />

Page_ClientValidate()是一个用于调用页面验证的javascript函数。

答案 1 :(得分:1)

验证器控件默认在客户端工作,实际上是为点击事件添加了自己的功能。有几种方法可以解决这个问题:

1)使用自定义验证器并定义您自己的客户端验证方法。这样您就可以处理验证和所需的其他处理。

2)禁用客户端验证。这将允许您的客户端代码根据需要运行,并且验证将在回发到服务器的过程中发生。但是,如果您假设您的数据在您自己的客户端点击方法中有效,则这将不适合您。

答案 2 :(得分:-1)

我认为你不能同时调用OnClick和OnClientClick属性。

一次只能使用1个属性。

感谢。