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