2

我有一个母版页,其中包含一个带有 PostBackUrl 的按钮。我使用 jquery 向按钮添加验证,如果表单无效则返回 false。

按钮:

<asp:Button ID="btnSearch" runat="server" Text="Search" CssClass="search-button" 
PostBackUrl="/some/rewriten/url" />

的JavaScript:

<script type="text/javascript">
    $(function () {
        $(".search-button").click(function (e) {
            if (!ValidateForm()) {
                return false;
                //e.preventDefault();
            }
        });
    });
</script>

我还有另一个页面,其中包含用户可以留下联系信息的表单。此表单有一个普通按钮:

<asp:Button ID="btnSend" runat="server" Text="Send" 
CssClass="button" OnClick="btnSend_Click" />

如果我使用第一个按钮并且表单无效,则会打印出错误消息并且用户不会被重定向到 PostBackUrl 页面。在此之后,如果我单击其他表单的 btnSend 按钮,用户将被重定向到 PostBackUrl 页面,就好像从之前设置并保存了回发 URL。

知道为什么会发生这种情况,以及如何解决这个问题吗?我在某处读到这样做OnClientClick="if(!ValidateForm())? return false;"可能会解决问题,但在我的场景中添加 OnClientClick 是不可接受的,必须通过 javascript 添加用于验证的点击处理程序。

4

0 回答 0