2011-04-04 40 views
1

這是星期五的工作,現在不是。我有這個在用戶控件的開頭:ASP.NET jQuery Datepicker問題 - 我錯過了什麼?

<link type="text/css" href="/App_Themes/css/ui-lightness/jquery-ui-1.8.11.custom.css" rel="stylesheet" /> 
<script src="/Scripts/jquery-1.5.1.min.js" type="text/javascript"></script> 
<script src="/Scripts/jquery-ui-1.8.11.custom.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#MainContent_ucSearchControl_dpPickupStart").datepicker(); 
     $("#MainContent_ucSearchControl_dpPickupEnd").datepicker(); 
}); 
</script> 

進一步回落,這一點:

<td><asp:TextBox id="dpPickupStart" runat="server" style="width: 65px"/></td> 
<td><asp:TextBox id="dpPickupEnd" runat="server" style="width: 65px"/></td> 

導致(在所呈現的頁面)輸入控件與:

name="ctl00$ctl00$MainContent$ucSearchControl$dpPickupStart" id="MainContent_ucSearchControl_dpPickupStart" 
name="ctl00$ctl00$MainContent$ucSearchControl$dpPickupEnd" id="MainContent_ucSearchControl_dpPickupEnd" 

但是,每次頁面加載時,我都會收到一個指向$(document).ready位置的Object Expected javascript錯誤。

我錯過了什麼?

編輯:螢火蟲報道說: $沒有定義 [打破這個錯誤] $(文件)。就緒(函數(){

+0

在類似的情況下,我發現它更容易定位基於類的元素,而不是id(即生成期間的Asp.net彈出) – 2011-04-04 19:53:07

+0

瀏覽Firefox + Firebug中的URL並查看jQuery相關文件確實有服務器返回的有效的響應代碼? – Chandu 2011-04-04 19:53:19

+0

一些事情。首先,避免硬編碼控制ID。相反,請使用<%= dpPickupStart.ClientID%>作爲ID,因爲它可以更改。此外,它可能是爲了簡潔起見,但您應該鏈接到頁面頭部的CSS,而不是在用戶控件的頂部。您可能有Head內容部分,這使我的觀點沒有意義。 – 2011-04-04 19:54:19

回答

2

暫時還不能保證的相對路徑的用戶控件您的JS文件將始終是正確的,這取決於文件系統層次結構中父頁面的位置。

因此,請將您的JS腳本標記更改爲使用Control.ResolveUrl方法,該方法將URL轉換爲可用於請求客戶端

<script src='<%=ResolveUrl("~/Scripts/jquery-1.5.1.min.js")%>' type="text/javascript"></script> 
<script src='<%=ResolveUrl("~/Scripts/jquery-ui-1.8.11.custom.min.js")%>' type="text/javascript"></script> 

或來自CDN的引用,用於增加高速緩存的性能獎勵。

jQuery hosted on google
jQuery UI hosted on google

+0

我現在有兩個src =「<%= ResolveUrl(」/ Scripts/jquery-1.5.1.min.js「)%>」和$(「#<%= dpPickupStart.ClientID%>」)。datepicker() ,它會生成相同的html,並且出現相同的錯誤。 – Michael 2011-04-04 20:25:00

+0

@michael對不起,錯誤的引號,再次嘗試代碼。你可以嘗試一個外部參考來證明這一點。如果外部參考仍然失敗,則會縮小問題範圍。 – Swaff 2011-04-04 20:44:32

+1

我實際上不得不改變它以在再次開始找到它之前使用〜符號。這是如何從星期六變化,我不知道... – Michael 2011-04-04 21:46:33

0

這錯誤是由於Jquery的不適造成的。我認爲Swaff的解決方案應該可以工作(+1)。檢查您的解決方案的腳本文件夾中是否提供了Jquery-1.5.1.min.js文件。或者它也可能是您的腳本文件夾被重命名。

HTH。