2012-11-24 131 views
14

如何禁用或啓用asp.net中的按鈕?我想在點擊後禁用按鈕以防止雙擊。我試圖在點擊它後禁用我的登錄按鈕。如何禁用按鈕asp.net

+0

我不能禁用按鈕。當用戶輸入用戶名和密碼並且當時點擊登錄按鈕時,按鈕不是禁用的,並且還希望當用戶登錄失敗時啓用它。 – Amol

+0

看看[this](http://jsfiddle.net/BrOSs/Mzhg2/)jsfiddle – BrOSs

+0

它會將值發佈到服務器,然後您想要禁用此按鈕。對? –

回答

13

您必須在客戶端上禁用它,以便用戶無法再次單擊它。

<asp:button id="btn" runat="server" OnClientClick="this.disabled=true;"...... 

禁用服務器端的asp.net代碼。

btn.Enabled = false; 
+0

如果用戶點擊輸出用戶名和密碼它將禁用。 – Amol

+1

@adil即使他編寫用戶名和密碼,然後單擊,如果禁用該按鈕,它將不會將值發佈到服務器。 –

+1

是否有可能提出一個新的問題,因爲這是完全不同於OP – Adil

3

您可以使用客戶端onclick事件要做到這一點:

yourButton.Attributes.Add("onclick", "this.disabled=true;"); 

您可以用JavaScript做到這一點。在你的表單標籤,

onsubmit="javascript:this.getElementById("submitButton").disabled='true';" 

在隱藏文件中的代碼,你可以像這樣

button1.enabled = false 
+0

如果用戶點擊輸入用戶名和密碼,則會禁用。 – Amol

+0

@Amol你應該在你的問題中指定。 – TheOptimusPrimus

2

編寫Java腳本函數檢查用戶名和密碼。
如果它們不是空白,則禁用該按鈕。
但是,如果您禁用該按鈕並且存在回發。並且在回發之後,它仍將被啓用。
所以想法是

  1. 創建一個java腳本函數。
  2. 驗證用戶名和密碼,
  3. 如果它們是有效的
  4. 禁用按鈕(JavaScript的)。
  5. 將ClientIdMode =「Static」添加到您的<asp:button>以防止.NET重新命名該名稱。

--edit

<asp:button id="btn" runat="server" ClientIdMode="Static" OnClientClick="return btn_disable" ... 

您的Java腳本代碼

function btn_disable 
{ 
    //check for user name and password 
    // if filled 
    document.getElementById("btn").disabled=true; 

} 
+0

不錯的嘗試,但如何使用您的id命名bs webforms呢? – Developerdeveloperdeveloper

+1

@DeveloperDeveloperDeveloper使用ClientIdMode =「靜態」 –