2015-02-23 93 views
0

完全困惑,爲什麼這是不工作...我收到的錯誤是:jQuery的日期選擇器()一個ASPX頁面上

0x800a01b6 - JavaScript runtime error: Object doesn't support property or method 'datepicker'

Master.master

<head id="head1" runat="server"> 
    <script src="js/jquery-1.10.2.js"></script> 
    <script src="js/jquery-ui.js"></script> 

    <script language="javascript"> 
     $(function() { 
      $("#ctl00_cphMain_txtExpDate").datepicker(); 
     }); 
    </script> 
</head> 

Page.aspx

<asp:TextBox ID="txtExpDate" runat="server" Visible="true" ReadOnly="false"></asp:TextBox> 

當頁面加載,我馬上得到JavaScript錯誤。但是,當我查看源代碼,一切都看起來不錯:

查看源文件,從瀏覽器

<input name="ctl00$cphMain$txtExpDate" type="text" id="ctl00_cphMain_txtExpDate" /> 

它運行沒有錯誤的jsfiddle,甚至給出了選擇器彈出式。什麼導致了錯誤?這是一個C#ASP.NET Web應用程序。

的jsfiddle - http://jsfiddle.net/ncojuu21/

+0

_JavaScript錯誤_...可能來自其他js代碼。 – Jai 2015-02-23 13:18:42

+0

我想你需要從頭部刪除這個'runat =「server」''。 – Jai 2015-02-23 13:24:06

+0

@ArunprasanthKV它是一個asp:TextBox,它在頁面加載時呈現爲常規的HTML輸入類型。 – dankeshawn 2015-02-23 13:28:40

回答

0

此錯誤是由於我的母版頁有重複的jQuery引用。當一個引用被刪除,現在.datepicker()完美運行時問題已解決。

1

你要調用腳本<script type="text/javascript">,而不是<script type="javascript">。 替換$("#ctl00_cphMain_txtExpDate")$("#<%=txtExpDate.ClientID%>")

+0

解決方案看起來不錯,但是我不能使用txtExpDate.ClientID,因爲我的應用程序使用了MasterPage,並且腳本位於此MasterPage的頭部。控件txtExpDate駐留在另一個包含在MasterPage中的ASPX頁面中...... – dankeshawn 2015-02-23 13:34:41

+0

如何使用特定的Css類作爲選擇器而不是控件ID? – 2015-02-23 13:38:47

+0

也許,但不應該沒有CSS選擇器的工作?我認爲第一篇文章中的嘗試比CSS選擇器更簡單。然而,我可能是錯的。你能舉個例子嗎? – dankeshawn 2015-02-23 13:40:07