Asp.net

點擊時禁用按鈕

  • January 22, 2017

我有一個按鈕控制項。一旦使用者點擊它,點擊事件應該觸發,然後按鈕應該被禁用。我怎樣才能做到這一點?我可以選擇使用 JQuery 或 JavaScript 或兩者。

這是我的按鈕聲明:

<asp:Button 
 ID="Button1" 
 runat="server" 
 Text="Click Me" 
 onclick="Button1_Click"
/> 

在後面的按鈕點擊程式碼上,我添加了一個 Response.Write()。那應該被執行,然後按鈕應該被禁用

無論出於何種原因,HTML 規範規定禁用元素不應包含在 POST 請求中。因此,如果您在客戶端 onclick 事件中使用 JavaScript 禁用 HTML 元素,則當瀏覽器組裝 POST 請求時,輸入元素將被禁用,伺服器將無法正確通知哪個元素引發了回發,它會’不觸發伺服器端點擊事件處理程序。

當您將UseSubmitBehavior屬性設置為 false 時,ASP.NET 將呈現****按鈕類型的輸入元素,而不是ASP.NET 按鈕控制項通常生成的送出類型的正常輸入。這很重要,因為點擊按鈕元素不會觸發瀏覽器的表單送出事件。

ASP.NET 不依賴瀏覽器表單送出,而是在該按鈕元素的 onclick 處理程序中呈現對 __doPostBack() 的客戶端呼叫。__doPostBack 將明確提出回發,無論請求中通過什麼 POST 數據。

通過獨立於瀏覽器送出事件引發回發,您可以擺脫前面提到的 HTML 怪癖。然後,您可以設置“this.disabled = true;”的 OnClientClick,它將呈現為“this.disabled = true; __doPostBack(‘Button1’, ‘’);”,一切都會按預期工作。

引用自:https://stackoverflow.com/questions/840742