Javascript 日期选择器自定义按钮错误?

Javascript 日期选择器自定义按钮错误?,javascript,jquery,Javascript,Jquery,我有一个脚本,其中在datepicker面板中有一个名为“csa”的额外按钮。现在一切都很顺利。例如,当输入字段为2014-01-23,然后单击CSA按钮时,日期更改+6个月。现在是第六个月了。单击csa按钮时出现错误。日期2014-06-04变为2014-00-4。但应该是2014-06-04+6个月。但我看不出我的剧本有错……有人能帮我吗 $(function () { $(".datepicker").datepicker({ dateFormat: "yy

我有一个脚本,其中在datepicker面板中有一个名为“csa”的额外按钮。现在一切都很顺利。例如,当输入字段为2014-01-23,然后单击CSA按钮时,日期更改+6个月。现在是第六个月了。单击csa按钮时出现错误。日期2014-06-04变为2014-00-4。但应该是2014-06-04+6个月。但我看不出我的剧本有错……有人能帮我吗

$(function () {
      $(".datepicker").datepicker({
          dateFormat: "yy-mm-dd",
          changeMonth: true,
          changeYear: true,
          yearRange: "2014:2034",
          showButtonPanel: true,
          beforeShow: function (input) {
              setTimeout(function () {
                  var buttonPane = $(input)
                      .datepicker("widget")
                      .find(".ui-datepicker-buttonpane");

                  var btn = $('<button class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" type="button">CSA</button>');
                  btn.unbind("click")
                      .bind("click", function () {
                          //$.datepicker._clearDate(input);
                          //alert('custom text');
                          var date = new Date(),
                              monthsToAdd = 7,
                              resultMonth =((date.getMonth()+monthsToAdd)%12),
                              displayMonth = (resultMonth < 10 ? '0'+ resultMonth: resultMonth);
                              $(input).datepicker("hide");
                              $(input).val(date.getFullYear() + '-' +
                              displayMonth + '-' + date.getDate());

                      });


                  btn.appendTo(buttonPane);

              }, 1);
          }
      });
    });
$(函数(){
$(“.datepicker”).datepicker({
日期格式:“年月日”,
变化月:对,
变化年:是的,
年份范围:“2014:2034”,
showButtonPanel:是的,
显示前:功能(输入){
setTimeout(函数(){
var buttonPane=$(输入)
.datepicker(“小部件”)
.find(“.ui日期选择器按钮面板”);
风险值btn=$('CSA');
取消绑定(“单击”)
.bind(“单击”),函数(){
//$.datepicker.\u clearDate(输入);
//警报(“自定义文本”);
变量日期=新日期(),
月toadd=7,
结果月=((date.getMonth()+monthstoad)%12),
displayMonth=(结果月<10?'0'+结果月:结果月);
$(输入).datepicker(“隐藏”);
$(输入).val(日期.getFullYear()+'-'+
displayMonth+'-'+date.getDate());
});
附件(按钮板);
}, 1);
}
});
});
更换

resultMonth =((date.getMonth()+monthsToAdd)%12),

原因:

date.getMonth()
将在第六个月返回5。因为蒙特兰奇的比分是0-11


一把小提琴最好是debug.thx作为您的答案,但当我测试小提琴时,我点击csa按钮得到2014-01-4,而这不是2014-06-04+6个月。。。我不明白这是因为你的代码在这里取当前日期(今天的日期)
$(input).val(date.getFullYear()++'-'+displayMonth++'-'+date.getDate())如何获取输入字段中的日期而不是今天的日期?thx;代码运行得很好,但问题仍然是一样的…今天就把日期取消。现在是2014-06-04,应该是2014-12-04,但当我点击csa时,我得到的是2014-01-04,不是6个月,而是7个月,年份没有变为2015年。当我在输入字段中输入日期2014-07-01时,当我点击csa时,我应该得到2015-01-04,但我得到2014-01-04。。。某个地方有一个错误,日期和月份现在运行得很好,但在2014年7月14日试运行6个月后,年份没有变化。例如,它变为2014年1月14日,但如果是+6个月,则年份必须更改为2015年1月14日。
resultMonth =(((date.getMonth()+1)+monthsToAdd)%12),