ASP.NET按钮点击事件仍然触发,即使自定义服务器端验证失败。

5

我遇到了一个问题,即使我设置自定义服务器端验证为args.IsValid = false,我的按钮单击事件仍然会触发。我正在通过代码进行调试,验证肯定是在按钮单击之前被触发的,并且一旦完成自定义验证,args.IsValid肯定被设置为false,但它总是在按钮单击事件中执行。有什么想法吗?

2个回答

6

我不确定所有细节,但是为了防止代码继续执行,请在按钮点击事件处理程序中添加以下内容:

if (!Page.IsValid)
     return;

这将防止代码执行。


啊,是的。完全忘记了那一部分。 - Josh

0

当调用OnClientClick="return SomeCustomClientCode();"时,客户端上的asp.net验证器(例如必填字段验证器)将被禁用,并且不会在验证器集合中列出,也不会验证由此验证器验证的字段。如果自定义验证通过,则页面将回传...

为了避免这种情况,在自定义验证代码或其他地方明确启用asp.net验证器,以便在页面回传之前或在自定义验证开始时激活它们,如下所示:

ValidatorEnable(document.getElementById('<%=rfvDDLStatus.ClientID%>'), true);

rfvDDLStatus ==> 未触发的必填字段验证器。

ValidatorEnable ==> 客户端 API,用于启用 asp.net 验证器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接