2014-01-08 50 views
9

我正在開發一個asp.net MVC4項目,我用了很多JqueryUI的datepicker。JqueryUI Datepicker:Uncaught TypeError:無法讀取未定義的屬性「設置」?

對於我的日期選擇器之一,當我試圖點擊日期選擇圖像我得到了一些錯誤,如上,

Uncaught TypeError: Cannot read property 'settings' of undefined    jquery-ui-1.10.3.min.js:9 

的Html

<div> 
<input type="text" id="tsDte" style="font-size: 14px;width: 50%" >    
       <img src="~/Images/dayPicker.png" onclick="tsDatePickerClick()" style="vertical-align:bottom"/> 
</div> 

的Javascript

var currentDate = new Date(); 

$("#tsDte").datepicker({ 
    dateFormat: 'yy-mm-dd', 
    maxDate: 0, 
    changeYear: true 
}).attr('readonly', 'readonly'); 
$("#tsDte").datepicker("setDate", currentDate); 


function tsDatePickerClick() { 
    $("#tsDte").datepicker('show'); 
} 

在這裏,我有一個Textfield和日期選擇器圖像。當我點擊datepicker圖像時,datepicker會彈出。

我已經按照類似的方式在其他datepicker,他們工作正常。我只有這個日期選擇器的問題。

任何幫助表示讚賞。

+0

看起來不錯http://jsfiddle.net/arunpjohny/CEPth/1/ –

+0

假設你已經使用DOM準備處理 –

+0

沒有DOM準備處理失敗http://jsfiddle.net/arunpjohny/CEPth/3/ –

回答

4

我認爲你的日期選擇器沒有被正確創建,所以當你調用show時,它期望一個settings對象。

也許你沒有內部$(document).ready創建它,你應該有:

$(document).ready(function(){  //Add this line (and it's closing line) 
    var currentDate = new Date(); 

    $("#tsDte").datepicker({ 
     dateFormat: 'yy-mm-dd', 
     maxDate: 0, 
     changeYear: true 
    }).attr('readonly', 'readonly'); 
    $("#tsDte").datepicker("setDate", currentDate); 
}); 

希望這有助於。歡呼聲

+0

Thans for reply.Is需要在所有javascript文件中添加$(document).ready(function().Mine是一個單一頁面的web應用程序。 – Cyber

+0

你必須在創建'datepicker'的任何地方添加它。 –

+0

: D注意,只有當你在開始時創建日期選擇器(當頁面加載時),你必須添加文檔 –

5

您正在添加jquery-ui-1.10.3.min.js庫。

你的問題是通過複製您的jQuery UI的核心腳本引起的。(檢查您是否包括任何其他librady如jquery-ui-1.10.3.drag-drop.min.js

負載只是其中一次,您的問題將持續下去。

+0

在這種情況下,請檢查你的AppStart/BundleConfig.cs。註釋掉所有內容並將jquery添加到前端-end to test。這是對我來說是什麼;顯然捆綁的librar(ie)干擾了javascript的加載。 – user426364

23

那同樣的錯誤將顯示,如果你試圖打開上誰的課「hasDatepicker」分配的輸入域的日期選擇器只需在HTML中刪除這個類

前:

<input type="text" value="01/01/2014" class="hasDatepicker"> 

後:

<input type="text" value="01/01/2014"> 
+0

我也是:)有datepicker沒有顯示,當通過Angular指令連接時,刪除該類某種程度上固定它。 –

0

對我來說,這是造成的,因爲我曾與ID date的跨度和輸入了相同的ID。給輸入一個不同的id解決了這個問題。

0

有同樣的問題,因爲我有兩個 @ Html.TextBoxFor(M => m.StartDate, 「{0:DD/MM/YYYY}」,新的{@class = 「的DatePicker」}) 和 @ Html.HiddenFor(m => m.StartDate)

與我的觀點相同。

相關問題