اکثر مواقع نیاز داریم که از کلیک تکراری بر روی دکمهها جلوگیری کنیم. روشهای متفاوتی برای این کار وجود داره، چه از سمت کاربر و چه از سمت سرور.
2 روشی که برای من کارآمدتر بود رو اینجا قرار میدم.
I.
$(function () {
$("input[type='submit']").click(function () {
if (Page_ClientValidate()) {
$(this).val("صبر کنید...");
$(this).prop("disabled", true);
__doPostBack(this.name, '');
}
});
});
II.
protected void Page_Load(object sender, EventArgs e)
{
try
{
DisableSubmitButton(btnSend);
DisableSubmitButton(btnRefresh);
}
catch (Exception err)
{ }
}
public static void DisableSubmitButton(Button button)
{
button.Attributes.Add("onclick", "this.disabled=true;this.value='صبر کنید...';" + button.Page.ClientScript.GetPostBackEventReference(button, string.Empty));
}
یا استفاده از روش زیر:
<asp:Button runat="server" ID="btnExport" Text="دریافت فایل اکسل" CssClass="btn btn-info" OnClick="btnExport_Click" OnClientClick="DisableButton()" />
function DisableButton() {
$('#<%=btnExport.ClientID%>').val('صبر کنید...');
$('#<%=btnExport.ClientID%>').prop('disabled', true);
javascript:__doPostBack('<%=btnExport.UniqueID%>', '');
}