2013-07-22 167 views
1

我試圖在按鈕點擊顯示一個加載div,但目前它不工作。ASP.NET按鈕點擊div顯示div

的Javascript:

<script type="text/javascript"> 
     $(document).ready(function (e) {  
      $('#BtnSend').click(function() { 
       $('#<%= loading.ClientID %>').toggle("slow"); 
      }); 
     }); 
    </script> 

事業部:

<div id="loading" class="Loading" runat="server" visible="false"> 
    <div class="loadingImg"> 
    <img src="../Images/loading.gif" alt="loading" /> 
    </div> 
    </div> 

按鈕:

<asp:Button ID="BtnSend" runat="server" Text="SEND" 
      onclick="BtnSend_Click" CssClass="pressbutton2" Height="36px" ClientIDMode="Static" /> 

股利設置爲RUNAT服務器,這樣我可以通過代碼也改變它的知名度。

+0

您是否檢查過在ASP.NET生成的HTML中,按鈕是否保留在aspx文件中指定的ID?我100%確定在按鈕是自定義用戶控件的一部分時,您在文件中看到的ID與頁面中顯示的ID不同。 – Renan

+0

注意:該ID是一個服務器控件,通常不與* Client *相同。 ClientID(又名DOM ID)使用控件ID,控制層次和映射規則來創建派生的ClientID。 – user2246674

+0

來自雙方驗證的情況下JavaScript關閉 – user1986761

回答

0

我已經嘗試添加防止默認值,因爲下面描述的代碼會在加載div顯示之前回發。

<script type="text/javascript"> 
    $(document).ready(function (e) {  
     $('#<%= BtnSend.ClientID %>').click(function (e) { 
      e.preventDefault(); 
      $('#<%= loading.ClientID %>').toggle("slow"); 
     }); 
    }); 
</script> 

我注意到另一件事是你必須設置Visible="false"

<div id="loading" class="Loading" runat="server" visible="false"> 

這意味着股利不存在作爲從服務器端不輸出它。在頁面加載時查看視圖源,它不會在那裏並隱藏,它不在那裏。刪除visible="false"並使用CSS隱藏它以開始。

+0

它只是一個CSS類來定製div。仍然沒有工作。 – user1986761

+0

哦,我現在看到,你做了div的ClientID但不是按鈕!更新代碼段 – rtpHarry

+0

實際上你有ClientIDMode靜態,所以它可能不是那樣,但是可見的錯誤問題。 – rtpHarry

3

對於asp按鈕使用onClientClick。然後,讓你ahve稱爲BtnSend_Click

如果你想通過客戶端做的jQuery的功能:如果你想要做

jQuery的

function BtnSend_Click() { 
    $('#<%= loading.ClientID %>').toggle("slow"); 
} 

ASP按鈕

<asp:Button ID="BtnSend" runat="server" Text="SEND" 
      onClientClick="BtnSend_Click" CssClass="pressbutton2" Height="36px" ClientIDMode="Static" /> 

它通過服務器:

C#

​​

ASP按鈕

<asp:Button ID="BtnSend" runat="server" Text="SEND" 
      onClick="BtnSend_Click" CssClass="pressbutton2" Height="36px" ClientIDMode="Static" /> 
0

的ASP.Net AJAX庫有UpdateProgress控制這聽起來像它會滿足您的需求。