我有一个用于输入日期的复合用户控件:
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();"
答案 0 :(得分:2)
尝试在return false;
电话结束时添加onClick
。这应该可以防止默认行为(在这种情况下是提交)。
btnClear.Attributes.Add("onClick", "btnClear_OnClick(); return false;")
答案 1 :(得分:0)
如果他们修复错误而不必点击任何内容,您是否要在客户端清除错误消息?
我做了类似的事情,如果我的问题是正确的,但调用了一个重新验证函数调用了一些客户端javascript代码,然后隐藏了错误消息所在的范围,如果他们解决了问题。
请参阅我的博客文章,如果您想解决这个问题,请告诉我。您想要阅读的部分位于底部。