我试图使用jquery datepicker,当我的代码只是这样的时候:
$('#startDate').datepicker({
showButtonPanel: true,
dateFormat: 'MM yy'
});
它工作正常,但是当我尝试在我的通话中再次使用$(this)或者甚至只是$(' startDate')时,它会抛出一个"对象不会支持财产或方法' datepicker'"错误。 (如下面的代码所示)
$('#startDate').datepicker({
showButtonPanel: true,
dateFormat: 'MM yy',
$(this).datepicker('setDate', new Date(2015, 1, 1));
// Also throws an error when I replace $(this) with $('startDate')
})
我甚至通过将它包装在$(document).ready()中并仍然使用简单的工作版本来获得相同的错误......
$(document).ready(function() {
$('#startDate').datepicker({
showButtonPanel: true,
dateFormat: 'MM yy'
});
});
知道可能导致此错误的原因是什么?
修改
以下是我尝试做的更完整的例子......
基本上,我希望能够根据变量timeBucket的值将日期选择器切换为月份选择器和日期选择器......
问题在于,每当我在原始$('#startDate')。datepicker中使用$('#startDate')。datepicker时,它会抛出错误...
$('#startDate').datepicker({
changeMonth: true,
changeYear: true,
showButtonPanel: true,
dateFormat: timeBucket == 2 ? 'MM yy' : "mm/dd/yy",
onSelect: function (dateText, inst) {
if (timeBucket == 2) {
var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
$('startDate').datepicker('setDate', new Date(year, month, 1));
}
}
}).focus(function () {
var thisCalendar = $(this);
if (timeBucket == 1) {
$('.ui-datepicker-calendar').detach();
$('.ui-datepicker-calendar').css("display", "none");
} else {
$('.ui-datepicker-calendar').css("display", "");
}
});
答案 0 :(得分:0)
你在这里:
$("#StartDate").datepicker({
dateFormat: 'dd/mm/yy',
beforeShow: function() {
// Everytime datepicker open, this function will run
//$(this).datepicker('setDate', new Date(2015, 1, 1));
}
});
// Set datetime here once when page load.
$('#StartDate').datepicker('setDate', new Date(2015, 1, 1));

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<link href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css" rel="stylesheet" />Start:
<input type="text" id="StartDate" />
&#13;
希望这有帮助。