我有一个母版页,其中包含一个带有 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 添加用于验证的点击处理程序。