我在我的项目中的表单中使用 jquery ui datepicker。我正在像这样初始化日期选择器。
var date_lower = new Date(1910,0,1);
var year_lower = date_lower.getFullYear();
var date_upper = new Date();
var year_upper = date_upper.getFullYear();
$("#id_dob").datepicker({ dateFormat: 'mm-dd-yy',minDate: date_lower,
maxDate: date_upper ,
yearRange: year_lower+':'+year_upper ,
changeYear: true,
changeMonth: true,
defaultDate: new Date(2000,01,01)
});
我的日期格式是这样的“mm-dd-yy”。因此,日期选择器不允许我以“mm/dd/yy”格式输入日期。当我尝试在日期选择器输入中键入“/”时,它什么也不做,或者我无法在日期选择器输入字段中键入“/”。我这样做是因为我想让用户选择在不使用日历的情况下添加日期(这是客户的需求)。我希望设置日期格式,以便我可以使用 [./-\s]
中的任何分隔符。例如,我希望接受所有这些类型的日期(01-01-1999、01/01/1999、01.01.1999 和 01 01 1999)。谁能告诉我如何做到这一点?
我正在使用 Django 模型表单集。
最佳答案
看看这个:jQuery Datepicker that supports multiple formats
基本上,调整 parseDate 函数以允许多种格式,并使用原始的 parseDate 检查每种格式:
$.datepicker.inputFormats = ["mm-dd-yy", "mm/dd/yy", "mm dd yy"];//list formats to be accepted here, add formats as you see fit.
$.datepicker.originalParseDate = $.datepicker.parseDate;
$.datepicker.parseDate = function (format, value, settings) {
var date;
function testParse(format, value, settings) {
if ( ! date ) {
try {
date = $.datepicker.originalParseDate(format, value, settings);
} catch (Error) {
}
}
}
testParse(format, value, settings);
for(var n = 0, stop = $.datepicker.inputFormats ? $.datepicker.inputFormats.length : 0; n < stop; n++){
testParse($.datepicker.inputFormats[n], value, settings);
};
return date;
};
关于javascript - Jquery UI 日期选择器日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35552485/