簡體   English   中英

按鈕onClick在Mozilla上執行了兩次

[英]Button onClick gets executed two times on Mozilla

我在按鈕上有一個javascript,可在單擊后將文本轉換為“等待...”。 問題在於,在Mozilla上,單擊后兩次執行。 這是代碼:

    System.Text.StringBuilder sb = new System.Text.StringBuilder();
    sb.Append("if (typeof(Page_ClientValidate) == 'function') { ");
    sb.Append("if (Page_ClientValidate() == false) { return false; }} ");
    sb.Append("this.value = 'Please wait...';");
    sb.Append("this.disabled = true;");    
    sb.Append(this.Page.ClientScript.GetPostBackEventReference(this.btnSave, ""));
    sb.Append(";");
    this.btnSave.Attributes.Add("onclick", sb.ToString());

的HTML是:

<div class="btns-action">
   <input type="submit" value="Submit" id="btnSave" runat="server" style="margin-left: 112px;"
      onserverclick="btnSave_Click" class="ui-button ui-widget ui-state-default ui-corner-all" />
   <a href="Login.aspx">Go Back&nbsp;<span class="arr">&raquo;</span></a>
</div>

該代碼還會在禁用按鈕之前檢查該頁面是否有效,以便該頁面無效,用戶可以再次單擊它。 這就是我這樣做的原因。 有解決方案嗎? 謝謝

后編輯:解決該問題的一件事是我卸下了UpdatePanel。 整個頁面都在更新面板中。 但這不應該是解決方案。

如果您已添加OnClick服務器端事件,則不需要最后3行。

您可以簡單地借助以下javascript函數進行操作:

function CheckEmptyFields(){
document.getElementById('<%=btnSave.ClientID %>').disabled = "disabled";           
document.getElementById('<%=btnSave.ClientID %>').value = "Please wait...";
<%= ClientScript.GetPostBackEventReference(btnSave, "") %>;
}

並將其添加到您的按鈕中

OnClientClick="CheckEmptyFields();"

因此,現在您的按鈕應該是:

<asp:Button Text="Submit" id="btnSave" runat="server" style="margin-left: 112px;"
  onclick="btnSave_Click" OnClientClick="CheckEmptyFields();" class="ui-button ui-widget ui-state-default ui-corner-all" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM