在按钮单击之前执行的其他控件的回发时,防止双击提交按钮

时间:2014-10-30 08:16:30

标签: javascript asp.net vb.net

我遇到了阻止双击ASP.NET中的“提交”按钮的问题。 我可以在没有ASP.NET Calendar的页面中禁用提交按钮。 在具有此Calendar的页面中,日历的回发会在单击按钮之前禁用提交按钮。

我使用以下javascript来禁用按钮单击按钮。如果在单击提交按钮之前没有来自其他asp.net控件的回发,它就可以工作。

function DisableButton() {
    document.getElementById("<%=ibtnNext.ClientID %>").disabled = true;
}
window.onbeforeunload = DisableButton;

我不知道该怎么做。 欢迎提出所有建议。

2 个答案:

答案 0 :(得分:0)

而不是使用 window.onbeforeunload 事件。禁用其 OnClientClick 事件上的按钮。

按钮的 postBack(onClick事件)只有在javascript中的 OnClientClick 事件之后才会执行。

<button id="ibtnNext" OnClientClick="return DisableButton()" onclick="btnSubmit_Click">Copy Text</button>

<script>
function DisableButton() 
{
     document.getElementById("<%=ibtnNext.ClientID %>").disabled = true;

     return true;
}
</script>

答案 1 :(得分:0)

谢谢大家, 我现在得到解决方案如下

JavaScript的 <script type="text/javascript"> function DisableButton(btn){ btn.disabled = true; } </script>

页面加载

protected sub Page_load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Dim optionsSubmit As New PostBackOptions(ibtnNext)
    ibtnNext.OnClientClick = "DisableButton(this);"
    ibtnNext.OnClientClick += ClientScript.GetPostBackEventReference(optionsSubmit) End Sub
点击事件中的

Protected Sub ibtnNext_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ibtnNext.Click
    System.Threading.Thread.Sleep(2000) End Sub

原始链接 http://www.devtoolshed.com/content/disable-button-submit-prevent-multiple-submits