2014-01-23 66 views
0

我有一個header.master ASP頁面,我正在嘗試處理按鈕單擊。如何在header.master頁面中使用jQuery

MasterPage.master有以下代碼:

<%@ Master Language="VB" CodeFile="MasterPage.master.vb" Inherits="MasterPage" %> 

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <asp:ContentPlaceHolder id="head" runat="server"> 
    </asp:ContentPlaceHolder> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"> 

     </asp:ContentPlaceHolder> 
    </div> 
    </form> 
</body> 

Default.aspx頁,我有以下代碼:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %> 

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
    <asp:TextBox ID="TextBox1" runat="server"/> 
<asp:Button ID="Button2" text="Search" runat="server"/> 
    </div> 
     <script> 
      $(document).ready(function() { 
       //write your code here 
       var txt = $('input[id$=TextBox2]').val(); 
       $("input[id$=Button2]").click(function() { 
        alert("Hello world!"); 
       }); 
      }); 
</script> 
    </form> 
</body> 
</html> 

每次我按一下按鈕我收到以下錯誤:0x800a1391 - JavaScript runtime error: '$' is undefined

我的HTML源代碼有:

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head><title> 

</title> 
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
</head> 
<body> 
    <form method="post" action="Default.aspx" id="form1"> 
<div class="aspNetHidden"> 
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="7dUu7W1yzgwgCERTGi4lbDb7UGbWC6oigS9K1dTKxNLxOKUQzVp9hkyhbKT/e5Ve22nU2D7eaALUFm2bnAuOroUPGHMRph/IDyBFloPmn0I=" /> 
</div> 

<div class="aspNetHidden"> 

    <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="QCYR7lPBzDC4MzimaH8vIZhF02sSXZE7Cf62VB3M7wEBPRqcglslWJOpXkEEhd9Uw5st2qukgt5t0k0g4Wht3U04fUZzVjfVER5iHbnrs9HEnjwqYebT1BCrLysKW9hhIPI4IIcy1JzrwgDvl0Yvpw==" /> 
</div> 
    <div> 
    <input name="TextBox1" type="text" id="TextBox1" /> 
<input type="submit" name="Button2" value="Search" id="Button2" /> 
    </div> 
     <script> 
      $(document).ready(function() { 
       //write your code here 
       var txt = $('input[id$=TextBox2]').val(); 
       $("input[id$=Button2]").click(function() { 
        alert("Hello world!"); 
       }); 
      }); 
</script> 
    </form> 
</body> 
</html> 
+0

你可以發佈這個asp標籤生成的HTML嗎? –

+0

我添加了源代碼,它對我來說看起來很好,但由於某些原因,它不處理onclick方法。 – Si8

+0

我已經在JSFiddle中粘貼了你的代碼,它工作正常:http://jsfiddle.net/5ytU4/ –

回答

1

您不能在javascript中使用使用#的asp.net控件ID。

所以試試這段代碼在javascript中使用asp.net控件ID如下。

$("#<%=Button2.ClientID %>").click(function() 
    { 
     alert("Hello World."); 
    }); 

我希望它能幫助你。

+0

我收到以下錯誤:'控件集合無法修改,因爲控件包含代碼塊(即<% ... %>).' – Si8

+0

是的,他可以使用控件ID,因爲他具有'ClientIDMode =「Static」'。 – MikeSmithDev

+0

我更新我的問題以顯示所有內容,您會建議我如何解決它?謝謝。 – Si8