gpt4 book ai didi

javascript - 使用 jquery ui datepicker 重新聚焦相同的 datepicker 输入时显示错误的月份和年份

转载 作者:行者123 更新时间:2023-11-30 12:25:12 24 4
gpt4 key购买 nike

我只想显示月份和年份。如果我在选择日期后重新聚焦相同的输入,它会显示错误的月份和年份,而不会显示之前选择的月份和年份。例如,我选择 2010 年 12 月,然后重新聚焦显示 2015 年 4 月的相同输入,如下图所示。我该怎么办?

enter image description here

HTML

<input type="text" class="dp" readonly="true">

CSS

.ui-datepicker-calendar {
display: none;
}

JS

$('.dp').datepicker({
changeMonth: true,
changeYear: true,
showButtonPanel: true,
dateFormat: 'mm.yy',
onClose: function (dateText, inst) {
$(this).datepicker('setDate', new Date(inst.selectedYear, inst.selectedMonth, inst.selectedDay));
}
});

http://jsfiddle.net/46tx62vu/

最佳答案

日期选择器希望能够将显示的日期版本解析为 javascript 日期对象。

执行此操作的一种方法是为您的特殊日期格式添加自定义 parseDate 函数。下面的代码查找“mm.yy”的特殊格式,如果找到,则将值解析为日期。如果格式是其他格式,则将处理传递给原始的 datepicker.parseDate。

var standardParseDate = $.datepicker.parseDate;

function customParseDate( format, value, options ) {
if (format === 'mm.yy') {
var dt = (value + ".").split(".");

var month = parseInt(dt[0]) - 1;
var year = parseInt(dt[1]);

if (year < 100) {
year += 2000;
}

if (isNaN(month) || isNaN(year)) {
return null;
}

return new Date(year, month, 1);
} else {
return standardParseDate(format,value,options);
}
}

$.datepicker.parseDate = customParseDate;

JSFiddle:http://jsfiddle.net/3drfd35t/

关于javascript - 使用 jquery ui datepicker 重新聚焦相同的 datepicker 输入时显示错误的月份和年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29650802/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com