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