JqueryUI Datepicker:未捕获TypeError:无法读取undefined的属性'settings'?

Cyb*_*ber 13 javascript jquery jquery-ui

我正在开发一个asp.net MVC4项目,我使用大量的JqueryUI datepicker.

对于我的日期选择器之一,当我试图点击datepicker图像时,我得到一些错误,如,

Uncaught TypeError: Cannot read property 'settings' of undefined                jquery-ui-1.10.3.min.js:9
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

使用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');
}
Run Code Online (Sandbox Code Playgroud)

这里我有一个Textfield和一个datepicker图像.当我点击datepicker图像时,会弹出一个datepicker.

我在其他datepicker中遵循了类似的方式,他们工作正常.我只有这个日期选择器的问题.

任何帮助表示赞赏.

小智 26

如果您尝试在已分配类"hasDatepicker"的输入字段上打开日期选择器,则会显示相同的错误.只需在html中删除此类即可.

之前:

<input type="text" value="01/01/2014" class="hasDatepicker">
Run Code Online (Sandbox Code Playgroud)

后:

<input type="text" value="01/01/2014">
Run Code Online (Sandbox Code Playgroud)


Edg*_*ado 8

我认为你的日期选择器没有正确创建,所以当你打电话时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);
});
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.干杯


Tha*_*nos 7

你包括jquery-ui-1.10.3.min.js图书馆.

您的问题是由复制jQuery UI核心脚本引起的.(检查是否包含任何其他库,例如jquery-ui-1.10.3.drag-drop.min.js.

加载一次,你的问题就会消失.