65.9K
CodeProject 正在变化。 阅读更多。
Home

避免多次提交表单

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2013 年 10 月 11 日

CPOL
viewsIcon

8522

多次表单提交可能导致 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;" +
GetPostBackEventReference(btnSubmit);
对于包含更新面板的页面,多次提交是一个真正的问题,因为页面是异步或部分提交的。在这种情况下,您可以使用 Sys.WebForms.PageRequestManager 来解决问题:
<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>
© . All rights reserved.