首页 新闻 会员 周边 捐助

网速慢时防止用户多次提交

0
悬赏园豆:30 [已解决问题] 解决于 2009-04-17 11:57

在。NET2.0中

btnLogin.Attributes.Add("onclick", "this.value='请稍后...';this.disabled = true;" + this.ClientScript.GetPostBackEventReference(this.btnLogin,""));

验证码正确才行,当验证码输入错误以后按钮事件不能调用但是能显示“请稍后..."后台的代码就不执行,那位高手指点一下

kinger的主页 kinger | 初学一级 | 园豆:180
提问于:2009-04-17 11:29
< >
分享
最佳答案
0

用ajax啦,用这个方法也可以!

        /// <summary>
        /// 防止重复提交按钮
        /// </summary>
        /// <param name="page">this</param>
        /// <param name="Button">按钮控制名称</param>
        /// <param name="Btn">按钮控制名称string</param>
        /// <param name="BtnValue">等待信息</param>
        /// <asp:Button ID="btnSave" runat="server" CssClass="btn1" Text="保 存" OnClick="btnSave_Click" OnClientClick="if(confirm('确定保存吗?')){this.value='数据提交中……';this.disabled=true;}else {return false ;}" UseSubmitBehavior="False" />
        public static void AjaxButton(Page page, System.Web.UI.WebControls.Button Button, string Btn, string BtnValue)
        {
            Button.Attributes.Add("onclick", "state=true;");
            StringBuilder sb = new StringBuilder();
            sb.Append("if (!state) return;");
            sb.Append("var button=document.getElementById('" + Btn + "');");
            sb.Append("button.value='" + BtnValue + "';");
            sb.Append("document.body.style.cursor='wait';");
            sb.Append("button.disabled=true;");
            string strScript = "<script>";
            strScript = strScript + "var state=false;";
            strScript = strScript + "window.attachEvent('onbeforeunload',function(){" + sb.ToString() + "});";
            strScript = strScript + "</" + "script>";
            page.ClientScript.RegisterStartupScript(page.GetType(), "onbeforeunload", strScript, false);
        }

assmin | 菜鸟二级 |园豆:255 | 2009-04-17 11:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册