如何清除按钮单击事件上的CustomValidator错误?

时间:2010-04-29 01:50:13

标签: asp.net ajax validation-controls

我有一个用于输入日期的复合用户控件:

alt text

CustomValidator将包含服务器端验证代码。如果用户以任何方式更改日期值,我希望通过客户端脚本清除错误消息。为此,我包含以下代码将两个下拉列表和年份文本框连接到验证控件:

<script type="text/javascript">
    ValidatorHookupControlID("<%= ddlMonth.ClientID%>", document.getElementById("<%= CustomValidator1.ClientID%>"));
    ValidatorHookupControlID("<%= ddlDate.ClientID%>", document.getElementById("<%= CustomValidator1.ClientID%>"));
    ValidatorHookupControlID("<%= txtYear.ClientID%>", document.getElementById("<%= CustomValidator1.ClientID%>"));
</script>

但是,我还希望在用户单击“清除”按钮时清除“验证”错误。当用户单击“清除”按钮时,将重置其他3个控件。为避免回发,“清除”按钮是一个常规HTML按钮,其中包含一个重置3个控件的OnClick事件。不幸的是,ValidatorHookupControlID方法似乎不适用于HTML控件,因此我想将HTML按钮更改为ASP按钮,而将Hookup更改为该控件。但是,我似乎无法消除默认情况下与ASP按钮控件关联的Postback功能。我试图将UseSubmitBehavior设置为False,但它仍然提交。我试图在我的btnClear_OnClick客户端代码中返回false,但发送到浏览器的代码在我的调用之后包含了一个DoPostback调用。

btnClear.Attributes.Add("onClick", "btnClear_OnClick();")

我试图覆盖它,而不是添加OnClick代码,但DoPostBack代码仍然包含在发送到浏览器的最终代码中。

单击“清除”按钮以清除CustomValidator错误并避免回发,我该怎么办?

   btnClear.Attributes.Item("onClick") = "btnClear_OnClick();"

2 个答案:

答案 0 :(得分:2)

尝试在return false;电话结束时添加onClick。这应该可以防止默认行为(在这种情况下是提交)。

btnClear.Attributes.Add("onClick", "btnClear_OnClick(); return false;")

答案 1 :(得分:0)

如果他们修复错误而不必点击任何内容,您是否要在客户端清除错误消息?

我做了类似的事情,如果我的问题是正确的,但调用了一个重新验证函数调用了一些客户端javascript代码,然后隐藏了错误消息所在的范围,如果他们解决了问题。

请参阅我的博客文章,如果您想解决这个问题,请告诉我。您想要阅读的部分位于底部。

http://coding.infoconex.com/post/ASPNET-CustomValidator-that-validates-multiple-controls-using-both-Server-Side-and-Client-Side-scripting.aspx