.net c# 解决 在页面中多次点击提交按钮,造成重复动作的 问题

页面有个提交按钮,提交后给指定邮箱发邮件。点击提交后页面暂时没有跳转的时候如果狂点提交,就会无限的发送邮件下去。怎么解决这个问题呢?可不可以弹出个小窗口显示邮件正在发送?... 页面有个提交按钮,提交后给指定邮箱发邮件。点击提交后页面暂时没有跳转的时候如果狂点提交,就会无限的发送邮件下去。怎么解决这个问题呢?
可不可以弹出个小窗口显示邮件正在发送?
设置enable为false需要页面load后。
验证码早已经有了谢谢,加那个对此问题无关系
展开
 我来答
百度网友fffd261
2009-09-07 · TA获得超过108个赞
知道小有建树答主
回答量:315
采纳率:0%
帮助的人:186万
展开全部
此代码用来实现当asp.net页面中的某个Button被点击后disable掉该页面中所有的Button,从而防止提交延时导致的多次提交。基于之前的onceclickbutton脚本.

//ASP.NET中防止页面多次提交的代码:javascript< script language="javascript"> < !-- function disableOtherSubmit() {
var obj = event.srcElement;
var objs = document.getElementsByTagName('INPUT');
for(var i=0; i< objs.length; i++)
{
if(objs[i].type.toLowerCase() == 'submit')
{
objs[i].disabled = true;
}
}
} //--> < /script>//ASP.NET中防止页面多次提交的代码:asp.netpublic class PreventMultiClick : System.Web.UI.Page {
protected System.Web.UI.WebControls.Button Button1; protected System.Web.UI.WebControls.Button Button2;
protected System.Web.UI.WebControls.LinkButton LinkButton1; protected System.Web.UI.WebControls.Button Button3; private void Page_Load(object sender, System.EventArgs e)
{
this.GetPostBackEventReference(this.Button3);
//保证 __doPostBack(eventTarget, eventArgument) 正确注册 if(!IsPostBack)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("if (typeof(Page_ClientValidate) == 'function')
{
if (Page_ClientValidate() == false)
{
return false;
}
}"); //保证验证函数的执行 sb.Append("if(window.confirm('are you sure?')==false) return false; ");
//自定义客户端脚本 sb.Append("disableOtherSubmit(); ");
// disable所有submit按钮 sb.Append(this.GetPostBackEventReference(this.Button3));
//用__doPostBack来提交,保证按钮的服务器端click事件执行 sb.Append("; ");
Button3.Attributes.Add("onclick",sb.ToString());
}
} #region Web Form Designer generated code override protected void OnInit(EventArgs e)
{
// // CODEGEN: This call is required by the ASP.NET Web Form Designer. // InitializeComponent();
base.OnInit(e);
}
/// < summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// < /summary> private void InitializeComponent()
{
this.Button3.Click += new System.EventHandler(this.Button3_Click); this.Load += new System.EventHandler(this.Page_Load);
}
#endregion private void Button3_Click(object sender, System.EventArgs e)
{
System.Threading.Thread.Sleep(3000);
Response.Write("Hello world!");
}
} 此处只是disable掉所有的submit button, 我觉得其它的可提交控件也是可以通过类似的方法来disable的.

以上就是ASP.NET中防止页面多次提交的代码实现。
百度网友586e433
2009-09-07 · TA获得超过3491个赞
知道小有建树答主
回答量:1221
采纳率:0%
帮助的人:1417万
展开全部
点击提交后 button.enable=false
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
雅南哥No1
2009-09-09 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:149
采纳率:100%
帮助的人:0
展开全部
非常简单,加个验证码功能就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
士靖辉LQ
2009-09-07 · TA获得超过169个赞
知道答主
回答量:105
采纳率:0%
帮助的人:0
展开全部
Get 和POST
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
柴关贵深0m
2009-09-07 · TA获得超过1142个赞
知道小有建树答主
回答量:1270
采纳率:0%
帮助的人:0
展开全部
document.getElementById("button1").disabled="disabled";
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式