通过javascript点击处理程序验证的PostBackUrl的Asp按钮会打破其他按钮

时间:2011-12-01 14:31:05

标签: jquery asp.net postbackurl

我有一个母版页,其中包含一个带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添加。

0 个答案:

没有答案