Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ui jQuery UI日期选择器onChangeMonthYear和inst参数_Jquery Ui_Datepicker - Fatal编程技术网

Jquery ui jQuery UI日期选择器onChangeMonthYear和inst参数

Jquery ui jQuery UI日期选择器onChangeMonthYear和inst参数,jquery-ui,datepicker,Jquery Ui,Datepicker,如何使用onChangeMonthYear的'inst'参数自动选择月的第一天 见: 我目前正在使用下面的代码,但我觉得我应该能够更直接地使用'inst'变量 $('.selector').datepicker({ onChangeMonthYear: function(year, month, inst) { ... } }); 如果没有特殊原因需要使用inst,则始终可以使用此: $(".datepicker" ).datepicker({ changeMonth:

如何使用onChangeMonthYear的'inst'参数自动选择月的第一天

见:

我目前正在使用下面的代码,但我觉得我应该能够更直接地使用'inst'变量

$('.selector').datepicker({
   onChangeMonthYear: function(year, month, inst) { ... }
});

如果没有特殊原因需要使用
inst
,则始终可以使用

   $(".datepicker" ).datepicker({
      changeMonth: true,
      changeYear: true,
      maxDate:0,
      onChangeMonthYear: function(year, month, inst){
        // set date to 1st on year or month change

        // this seems  bit janky, but works
        $('#' + inst.id).datepicker( "setDate", month + '/1/' + year );

        // Can't I use the instatnce to set the date?

        // $(inst).datepicker( "setDate", month + '/1/' + year ); // fails
        // inst.datepicker( "setDate", month + '/1/' + year ); // fails
        // inst.selectedDay = 1; // fails
        // inst.currentDay = 1; // fails 
      }
  });

<动作>:

< P> William Niu的解决方案不考虑其他日期格式(如DD MMYYYY)。 您最好从datepicker中获取一个日期对象,并按您喜欢的方式修改它(即设置月的第一天)。修改后,可以将修改后的日期对象重新传递给日期选择器

  onChangeMonthYear: function(year, month, inst){
     $(this).datepicker( "setDate", month + '/1/' + year );
  }
这样就不会覆盖日期格式(可能是在日期选择器初始化期间设置的)

注意月份格式:datepicker处理月份的1-12格式,而Date对象是0-11


希望这能有所帮助,再见

这是完全有道理的,我真的没有任何特别的理由使用“inst”,“this”很好用。
    dateFormat: "dd-mm-yy",
    onChangeMonthYear: function(year, month, inst){
      var selectedDate = $(this).datepicker( "getDate" );//Date object
      selectedDate.setDate(1);//set first day of the month
      selectedDate.setMonth(month-1);//month is 1-12, setMonth is 0-11
      selectedDate.setFullYear(year);
      $(this).datepicker( "setDate", selectedDate );
   }