0

ボタンにJavaScriptを使用して、クリック後にテキストを「待機...」に変換します。問題は、Mozilla ではクリック後に 2 回実行されることです。これはコードです:

    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>

このコードは、ボタンを無効にする前にページが有効かどうかもチェックするため、無効な場合はユーザーがもう一度クリックできます。これが私がこのようにした理由です。これを解決する解決策はありますか?ありがとう

LATER EDIT:それを解決したことの1つは、UpdatePanelを外したことです。ページ全体が更新パネルにありました。しかし、これはこれに対する解決策ではないはずです。

4

2 に答える 2

1

OnClick サーバー側イベントを追加した場合、最後の 3 行は必要ありません。

于 2012-08-06T07:22:55.647 に答える
0

この 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" />
于 2012-08-06T07:55:30.807 に答える