<asp:Button ID="btnPay" runat="server" Text="确认无误,付款" onclick="btnPay_Click" OnClientClick="return btnSubmit(this);" class="payButton" ValidationGroup="PayGroup"/>
function btnSubmit(obj) {
if (Page_ClientValidate()) {
obj.disabled = true;
$(obj).val('数据提交中...');
return true;
}
return false;
}
点击btnpay后先执行btnSumbit,返回true执行onclick事件,
protected void Page_Load(object sender, EventArgs e)
{
if (!IsLogined)
{
Response.Redirect("Login.aspx?redirect_url=" + Server.UrlEncode(Request.Url.AbsoluteUri));
}
if (!CheckQueryString())
{
Response.Redirect("PayError.aspx?type=error");
}
if (IsPostBack)
return;
if (!payUnit.IsPay())
{
Response.Redirect("PayError.aspx?type=order");
}
BindControl();
}
每次执行到ispostback就直接return再跳到最下面}结束了.
哎,郁闷.
this.btnOk.Attributes.Add("onclick", ClientScript.GetPostBackEventReference(btnOk, "Click") + ";this.disabled=true; this.value='提交中...';");
注册一段回传脚本。可以实现 点击按钮文字变化"提交中.."。页面刷新后,变回“提交”。防止重复点击。
点击按钮..然后postback,再到pageload的时候是true,所以肯定会返回。