中经常会遇到客户没有耐心等待程序执行结果多次点击按钮导致页面被多次提交。
方法一
这个代码放在公共类里面了
/// <summary>
/// 是否正在预订
/// </summary>
public bool IsOrding
{
get
{
if (Session["IsOrding"]!=null)
{
return bool.Parse(Session["IsOrding"].ToString());
}
else
{
return false;
}
}
set
{
if (Session["IsOrding"]!=null)
{
Session["IsOrding"] = value;
}
else
{
Session.Add("IsOrding",value);
}
}
}
this.IsOrding=true;
提交按钮事件之前
提交代码
.......
if(this.IsOrding)
{
......提交过程
this.IsOrding=false;
}
else
{
Response.werite(<script>alert('提交失败 重复提交');</script>")
return;
}
方法二
其实有一简单解决方法:
页面中加入:
<form οnsubmit="return CheckFormSubmit();">
.....
</form>
<script>
var IsSubmited = false;
function CheckFormSubmit()
{
if(IsSubmited==true) return false; //如果为正在提交状态,则不允许再次提交
IsSubmited = true; //更改为提交状态
return true;
}
</script>
方法三:
检查数据库 是否重复字段
方法四
提交成功成功之后,直接跳转到其他网页
Response.Redirect(.....)