2014-01-23 28 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