【问题标题】:ASP Hyperlink control using href="#" and validation使用 href="#" 和验证的 ASP 超链接控件
【发布时间】:2011-05-31 06:58:24
【问题描述】:

我在使用 asp 超链接控件和“#”href 值时遇到问题。我不希望链接离开当前页面或重新加载它,但我希望链接导致对特定验证组进行验证。

以下行不会触发验证。

<asp:HyperLink id="next" runat="server" CausesValidation="true" ValidationGroup="SideRifStepOne" href="#">Next Step</asp:HyperLink>

如果我使用相同的属性进行验证,但页面会重新加载。在不重新加载页面的情况下触发验证有什么建议吗?

谢谢

【问题讨论】:

    标签: .net asp.net html visual-studio


    【解决方案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 它没有验证。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-11
    • 2011-11-14
    • 1970-01-01
    • 2013-08-10
    相关资源
    最近更新 更多