避免多次提交表单





0/5 (0投票)
多次表单提交可能导致 Web 应用程序出现问题,因为会出现意外行为,例如在数据库中创建多条记录。以下是
多次表单提交可能导致 Web 应用程序出现问题,因为会出现意外行为,例如在数据库中创建多条记录。这里提供一个解决方案来帮助您避免多次提交。
如果您只提交页面一次,可以使用:
<form onsubmit="return Submit();">方法如下:
<script type="text/javascript">
var flag = false;
function Submit()
{
if (flag)
{
return false;
}
else
{
flag = true;
return true;
}
}
</script>
对于单个按钮,可以使用:
btnSubmit.Attributes["onclick"] = "this.disabled=true;" +对于包含更新面板的页面,多次提交是一个真正的问题,因为页面是异步或部分提交的。在这种情况下,您可以使用 Sys.WebForms.PageRequestManager 来解决问题:
GetPostBackEventReference(btnSubmit);
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequest);
function BeginRequest(sender, e)
{
e.get_postBackElement().disabled = true;
}
</script>