2016-02-03 115 views
4

我創建了一個ASP.NET應用程序,並希望使用jQuery驗證窗體。Bootstrap - 未定義jQuery

當刷新頁面,Chrome的控制檯顯示以下錯誤:

Uncaught ReferenceError: $ is not defined

這是我的母版頁代碼:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 
<head runat="server"> 
    <title></title> 

    <link href="Styles/bootstrap.css" rel="stylesheet" type="text/css" /> 
    <script type="text/javascript" src='<% ResolveUrl ("~/scripts/jquery-1.11.3.js"); %>'></script> 
    <script src="Scripts/validations.js" type="text/javascript"></script> 
    <asp:ContentPlaceHolder ID="HeadContent" runat="server"> 
    </asp:ContentPlaceHolder> 
</head> 
<body> 
    <form runat="server" class="form-inline" role="form"> 
     <div class="container"> 
      <div class="jumbotron">  
       <h1>Statement Generator</h1> 
       <p>This application is used to generate PDFs</p> 
      </div> 
      <div class="row"> 
       <div class="col-xs-12"> 
        <asp:ContentPlaceHolder ID="MainContent" runat="server"/> 
       </div> 
      </div> 
      <div class="clear"> 
      </div> 
     </div> 
     <div class="footer"> 

     </div> 
    </form> 
    <script type="text/javascript" src='<% ResolveUrl ("~/scripts/jquery-1.11.3.js"); %>'></script> 
    <script type="text/javascript" src='<% ResolveUrl ("~/scripts/bootstrap.min.js"); %>'></script> 

</body> 
</html> 

這是我在validations.js代碼:

$(function() { 
    alert(); 
}); 

我錯過了什麼嗎?

+0

你正在包括jQuery兩次...嘗試從頭中刪除它 –

+0

但我不應該在使用它之前定義jQuery嗎? – gene

+0

你需要從底部刪除jquery。 – JonH

回答

4

你需要刪除最後一個jQuery的聲明,你已經在<head>標籤中聲明瞭它。你可以先嚐試刪除最後一個實例,然後嘗試,你可以做的另一件事是直接將其更改爲:

<script type="text/javascript" src="~/scripts/jquery.js">

只是爲了看看ResolveUrl()是問題。

我認爲對於腳本來說,不需要使用ResolveUrl,您應該使用ResolveUrl來處理像UserControls或圖像這樣的事情。

這裏的MSDN:https://msdn.microsoft.com/en-us/library/system.web.ui.control.resolveurl.aspx

+0

這工作。但爲什麼它不能與'ResolveUrl'一起使用? – gene

+0

@gene - 查看我的編輯,您可以使用ResolveUrl,但需要正確的語法,請參閱Artyom的其他答案。但在這種情況下,你的腳本應該很好地放在自己的文件夾中,像'〜/ scripts/...'我的建議是它比它的價值造成更多的困惑。 – JonH

+0

我不知道'〜'是否會讓瀏覽器感到困惑,是嗎?瀏覽器會解析相對的網址嗎? – Artyom

1

更換

<script type="text/javascript" src='<% ResolveUrl ("~/scripts/jquery-1.11.3.js"); %>'></script> 

<script type="text/javascript" src='<%= ResolveUrl("~/scripts/jquery-1.11.3.js") %>'></script> 

它的工作原理<%= %>使得Response.Write<% %>ResolveUrl呼叫而不輸出它的原因。請登錄https://support.microsoft.com/en-us/kb/976112瞭解更多信息希望它有所幫助!