asp.net 防止按钮重复提交
1、将按钮属性设置如下:
<asp:Button ID="btConfirm" runat="server" Text="Confirm" Width="96px" UseSubmitBehavior="false" OnClientClick="confirmStockout(this)"/>
这里需要将UseSubmitBehavior设置为false,
UseSubmitBehavior 属性规定按钮控件使用客户端浏览器内建的提交功能,还是使用 ASP.NET 的 postback 机制。
该属性被设置为 TRUE,如果控件使用浏览器的提交机制。否则为 FALSE。默认值是 TRUE。
当设置为 FALSE 时,ASP.NET 会添加一段客户端脚本来回传该表单。
当 UseSubmitBehavior 属性为 false 时,控件开发人员可以使用 GetPostBackEventReference 方法来返回 Button 的客户端回发事件。GetPostBackEventReference 方法返回的字符串包含客户端函数调用的文本,可以插入到客户端事件处理程序中。
2、编写JS函数来使按钮为不可用状态:
function confirmStockout(button) { var btn = button; btn.disabled = true; return window.confirm("Are you sure to Stock out listed DNote(s)"); }
3、当按钮提交过程中出差返回或按钮提交事件执行完成,使按钮为可用状态,但是后台直接通知前台是比较困难的事情,所以这里通过重定向到当前页来使按钮恢复可用状态
Response.Redirect("StockOut.aspx")