2015-05-29 104 views
2

我有一個按鈕正在執行一些插入到數據庫中。如何禁用單擊按鈕然後再調用單擊事件

問題是用戶填寫表單並單擊按鈕多次執行多次插入過程。

所以我禁用了「OnClientClick」按鈕的按鈕使用腳本,但它不執行服務器端Click事件。

這裏是我的按鈕:

<asp:Button ID="btnContinue" runat="server" Text="Continue To Application >>" OnClick="btnContinue_Click" ValidationGroup="criteria" OnClientClick="DiableButton(this)"></asp:Button> 

功能禁用按鈕

function DiableButton(btn) { 

    $(btn).attr("disabled", "disabled");   
    $("[Id$='hfDisableBtn']").val($(btn).attr("id"));  

} 

功能,使正在從服務器端執行插入

function EnableButton() { 
    var btn = $("[Id$='hfDisableBtn']").val(); 
    $(btn).removeAttr("disabled"); 
    $("[Id$='hfDisableBtn']").val("");  
} 

後調用的函數我想要的是

1) first disable button on click if all the validation satisfied (like Require filed validator) 
2) then call the server side click event of that same button 
3) enable that button after executing server side click event 

我該如何做到這一點???

請幫我 謝謝你是進步

+0

顯示驗證...驗證後您可以觸發按鈕屬性更改。 –

+0

我用像「RequiredFieldValidator的」和「的RegularExpressionValidator」 asp.net驗證,你可以看到,在我的按鈕,我已經使用的ValidationGroup =「標準」 –

回答

1

這可以通過更換你的ASP來實現:與HTML按鈕,該按鈕點擊創建一個AJAX調用服務器功能按鈕(需要被標記爲的WebMethod)那麼你可以精確地跟隨您的要求

1) first disable button on click if all the validation satisfied (like Require filed validator) 
2) then call the server side click event of that same button 
3) enable that button after executing server side click event 
0

我不知道,如果你的JS代碼工作像您期望的,但如果職能工作,那麼它應該太

1) first disable button on click if all the validation satisfied (like Require filed validator) 
2) then call the server side click event of that same button 

你說的那個功能工作,但不會因此這裏火服務器功能,你只需要添加return true;在你的JS功能和服務器功能將被稱爲

3) enable that button after executing server side click event 

在您的服務器端功能添加此行調用JS功能

ScriptManager.RegisterStartupScript(this, this.GetType(), "Funct", "EnableButton();", true); 

而且,如果你存儲按鈕的ID在這兩個函數只使用它,你可以讓他們像這樣:

function DiableButton(btn) { 
    $(btn).attr("disabled", "disabled");    
    return true; 
} 

function EnableButton() { 
    var btn = $('#<%=btnContinue.ClientID %>').val(); 
    $(btn).removeAttr("disabled"); 
} 

希望它有幫助

+0

但對於驗證???? –

+1

在調用服務器之前,甚至在觸發onclientclick函數之前,必需的字段驗證器完成其工作,因此您不必擔心 –