使用 href="#" 和验证的 ASP 超链接控件
Posted
技术标签:
【中文标题】使用 href="#" 和验证的 ASP 超链接控件【英文标题】:ASP Hyperlink control using href="#" and validation 【发布时间】:2011-05-31 06:58:24 【问题描述】:我在使用 asp 超链接控件和“#”href 值时遇到问题。我不希望链接离开当前页面或重新加载它,但我希望链接导致对特定验证组进行验证。
以下行不会触发验证。
<asp:HyperLink id="next" runat="server" CausesValidation="true" ValidationGroup="SideRifStepOne" href="#">Next Step</asp:HyperLink>
如果我使用相同的属性进行验证,但页面会重新加载。在不重新加载页面的情况下触发验证有什么建议吗?
谢谢
【问题讨论】:
【参考方案1】:另一种解决方案是手动调用 Page_ClientValidate():
<asp:HyperLink id="next" runat="server" href="javascript:doValidate()">Next Step</asp:HyperLink>
<script type="text/javascript">
function doValidate()
Page_ClientValidate();
</script>
【讨论】:
谢谢,这行得通。它执行验证并且不回发。感谢您的帮助。【参考方案2】:您可以将EnableClientScript="true"
添加到您的验证控件中。通过这样做,将在回发之前在 javascript 中执行验证。
【讨论】:
谢谢,实际上我的验证控件确实有这个属性。【参考方案3】:您是否尝试过使用链接按钮?你可以设置 onclientclick="return false;"防止回发,它应该引起验证
【讨论】:
感谢您的回复。我刚试过,它没有加载页面也没有验证。如果我删除 onclientclick="return false;"它执行验证,如果失败,工具提示会显示,但是,如果验证通过,它会刷新页面。使用 onclientclick 它没有验证。以上是关于使用 href="#" 和验证的 ASP 超链接控件的主要内容,如果未能解决你的问题,请参考以下文章