簡體   English   中英

最初禁用的按鈕在被Javascript啟用后不會回發

[英]Initially disabled Button won't post back after it is enabled by Javascript

我有一個默認情況下處於禁用狀態的按鈕,但是可以通過JavaScript啟用(或未禁用?),但是當我單擊該按鈕時,它實際上並未執行任何操作(即發布)。 相關代碼:

<asp:Button runat="server" ID="btnLoad" Text="Load" 
    OnClick="btnLoad_Click" Enabled="False"/>

通過以下方式啟用:

var btnLoad = $get("<%= btnLoad.ClientID %>");
btnLoad.disabled = false;

我掛了另一個按鈕以回發並在服務器上啟用原始按鈕(btnLoad),這似乎可以解決問題。 因此,似乎在客戶端上啟用了按鈕,但在服務器上未啟用按鈕。 我想我除了強制發布帖子以啟用按鈕外什么也不能做? 我不確定為什么我現在仍在發布此問題,但我還是會:)

這是因為服務器認為“哦,該按鈕被禁用,我將忽略該消息”。

最好的方法是在服務器端啟用它,然后在頁面上使用JavaScript禁用它(在頁面頂部放一個<script>標記),然后像現在一樣重新啟用它。

僅存在disabled屬性意味着它已被禁用。 嘗試這個:

btnLoad.removeAttribute("disabled");

禁用該控件的viewstate並查看它是否有效。 viewstate“記住”按鈕被禁用,可能不會觸發on_click事件

我假設您在事件注冊到服務器之前禁用了該按鈕,因此啟用該按鈕后該按鈕不起作用的原因。

如果要在后面的代碼中禁用它, Pre_RenderPre_Render事件上執行它。 如果您是通過javascript執行的,則在$(document).ready()

未能覆蓋按鈕的onClick並使用JS強制回發:

$('#<%= btnLoad.ClientID %>').onClick(function() {
    __doPostBack("<%= btnLoad.ClientID %>", "");
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM