Jquery Datepicker说对象不支持属性或方法' datepicker'在Jquery中调用?

时间:2015-07-06 15:10:01

标签: javascript jquery jquery-ui datepicker

我试图使用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", ""); } });

1 个答案:

答案 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;
&#13;
&#13;

希望这有帮助。