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)
我认为你的日期选择器没有正确创建,所以当你打电话时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)
希望这可以帮助.干杯
你包括jquery-ui-1.10.3.min.js图书馆.
您的问题是由复制jQuery UI核心脚本引起的.(检查是否包含任何其他库,例如jquery-ui-1.10.3.drag-drop.min.js.
加载一次,你的问题就会消失.