2013-01-23 68 views
3

我需要使用按鈕單擊事件禁用錨標記。我爲我的要求處理了服務器端和客戶端事件。我修改了客戶端點擊事件中的'href'屬性,如下所示。使用按鈕單擊禁用錨標記

[ASPX]

<asp:Button ID="Button1" runat="server" Text="Disable" OnClick="disable" CausesValidation="false" OnClientClick="disable();" /> 

[腳本]

 function disable() { 
     $('a.ClassName').attr("href", "#") 
    } 

它得到正確設置。但是在服務器端進程之後,錨標籤會重新設置舊的href屬性。如何解決這個問題?

+1

如果客戶端部分按預期工作,爲什麼在服務器端修改「服務器端進程」之後的href屬性? – Johan

回答

3

當您回發到服務器時,會呈現新頁面。

您通過javascript所做的任何更改都將丟失。

您應該在服務器端檢測到條件(按鈕被按下的時間較早),並對URL服務器端進行必要的更改。

您可以將此狀態更改存儲在隱藏輸入中並在服務器端獲取。

1

你必須儘快加載頁面期運用禁用的鏈接,

preventDefault(); 

於是嘗試去做這樣的事情,

function disable_link(event) { 

    event.preventDefault(); 
    return false; 
} 

而只是將其綁定到特定的元素你想要