使用下一个箭头时,jquery ui 的日期选择器中的月份返回错误值
Posted
技术标签:
【中文标题】使用下一个箭头时,jquery ui 的日期选择器中的月份返回错误值【英文标题】:wrong value returned for month in datepicker of jquery ui when using the next arrow 【发布时间】:2013-09-04 17:04:18 【问题描述】:I am using datpicker to provide options to select the month/year only and when the month is selected, a form is submitted with the selected value.
代码如下: jquery ui datepicker 使用此代码:
$(document).ready(function()
$("#datepicker").datepicker(
changeMonth: true,
changeYear: true,
showButtonPanel: false,
yearRange: "2013:2015",
onChangeMonthYear: function(dateText, inst)
console.log($(".ui-datepicker-year :selected",$(this)).val()
+ "/" + $(".ui-datepicker-month :selected",$(this)).val());
);
);
但是返回的数字有两种情况。
(console.log 中的值)
如果您尝试选择一个月份,比如说 2013 年 10 月,返回值为 2013/9,这没关系。 现在,如果您尝试单击箭头转到 2013 年 11 月,则该值再次为 2013/9,这是错误的。同样从 2013 年 12 月到 2012 年 1 月返回 2013/11
如果你走到结尾“dec 2015”,然后点击下一个箭头,它会回到开头的“jan 2013”,这没关系,但是继续点击下一个箭头,你会请注意,您不能再从“2013 年 12 月”移动到“2014 年 1 月”,它会移回“2013 年 1 月”
感谢任何帮助。
【问题讨论】:
【参考方案1】:onChangeMonthYear()
接收新选择的年份和月份作为参数,因此您可以直接使用它们
...
minDate: new Date(2013, 1 - 1, 1),
maxDate: new Date(2015, 12 - 1, 31),
onChangeMonthYear: function(year, month, inst)
console.log(
year + "/" + month
);
【讨论】:
现在,month 返回实际月份编号而不是 javascript 月份编号,因此 sep 为 9,这没关系,我可以适应,但如果您继续下一个到末尾,它会产生额外的问题" dec 2015”返回“2015/12”,当你点击下一个时,“jan 2013”返回“2016/1”,此外“dec 2013”跳转到“jan 2013”并返回“2017/1”并继续。minDate
和 maxDate
将阻止选择超出您的范围——我编辑了我的答案
太棒了,这解决了我的问题,尽管我希望它也能按预期使用原始代码。以上是关于使用下一个箭头时,jquery ui 的日期选择器中的月份返回错误值的主要内容,如果未能解决你的问题,请参考以下文章
jQuery UI Datepicker - 隐藏特定月份的上一个导航箭头