2013-07-13 26 views
2

這不起作用,我不明白爲什麼,我已經嘗試W3schools上的代碼和那個作品,我認爲問題可能是參考或什麼,我是新來的ASP.NET爲什麼jQuery不使用asp.net?

ASP代碼(母版頁)

<script src="./Scripts/jquery-1.4.1.js" type="text/javascript"></script> 
    <script type="text/javascript"> 

     $(document).ready(function() { 
      $("#bt_insertar").click(function() { 
       alert("Handler for .click() called."); 
      }); 


     }); 

       </script> 
<asp:ContentPlaceHolder id="head" runat="server"> 
</asp:ContentPlaceHolder> 

的Index.aspx

<td class="style4"> 
      <asp:Button ID="bt_insertar" runat="server" Text="Insertar" Width="71px" 
       onclick="bt_insertar_Click" style="height: 26px" /> 
     </td> 
+3

1.4.1?!?! ..... –

+0

什麼是ClientIdMode設置爲?你有沒有檢查過這個html,以確保你真的獲得了你認爲你所得到的id? – joelmdev

+0

順便說一句,我建議你可能要嘗試免費從CodeSchool「嘗試的jQuery」當然,如果你是新來的jQuery和JavaScript,因爲它提供了一個很好的介紹到庫,這將有助於讓你的信心和技能編寫jQuery代碼。 http://www.codeschool.com/courses/try-jquery – pwdst

回答

4

默認情況下,ID你給你的runat="server"控件不是DOM元素上結束了id。你可以得到ASP.Net從ClientID屬性生成服務器端控件對象的ID。例如,更改:

$("#bt_insertar").click(... 

$("#<%= bt_insertar.ClientID%>").click(... 

...如果代碼是在頁面ASP.Net解析(而不是外部JavaScript文件)。

由於ASP.Net 4,你可以控制通過ClientIDMode property此行爲。舉例來說,如果你使用Static模式(control.ClientIDMode = CLientIDMode.Static;),那麼ID實際上是通過按原樣傳遞。但對於ClientIDMode的默認值是Predictable,它改變您使用ID

+0

此屬性僅在ASP.NET 4及以上爲清楚起見可用。 ASP.NET中的級聯ID的目的是爲了防止重複的ID,當您使用模板對照或重複元件/用戶控制。在用戶控件或模板中謹慎使用靜態ID以避免重複。 – pwdst

+0

我實在 - 客戶端ID已經可用,因爲ASP.NET 1澄清澄清。 – pwdst

+0

@pwdst:非常感謝,非常感謝。我已經更新了答案。 –

1

要綁定jQuery的功能,您必須編寫代碼這樣Asp.net服務器控件。

<script type="text/javascript"> 

    $(document).ready(function() { 
     $('#<%= bt_insertar.ClientID %>').click(function() { 
      alert("Handler for .click() called."); 
     }); 


    }); 
0

幾點:

  1. 在你的JQuery包括語句src應該在的src="../Scripts/jquery-1.4.1.js"代替src="./Scripts/jquery-1.4.1.js"
  2. 你並不真的需要綁定在你的document.ready事件單擊事件,而不是你可以包括OnClientClick="bt_insertar_Click();"在你的asp:Button

然後你可以定義你的function bt_insertar_Click()

<script type="text/javascript"> 

    function bt_insertar_Click() { 
     alert("Handler for .click() called."); 
    } 
    </script> 

這是一個良好的編程習慣使用一個單獨的.js文件對您的網頁,所以你可以像你用jQuery的文件沒有將所有相關的JS功能,這個js文件,然後包括它。