设置 jquery ui 日期选择器的日期格式限制输入中的自由文本
Setting dateFormat of jquery ui datepicker restricts free text in input
我正在使用 jquery ui 日期选择器。
我只是想将 dateFormat 设置为类似:"dd/mm/yy",所以我的 javascript 是:
$("#datepicker").datepicker({
dateFormat: "dd/mm/yy"
});
相关的html是:
<input type='text' id='datepicker'>
但是,这样做会限制输入元素中可以输入的文本(例如,我不能输入“-”或“.”)。
我需要此功能,因为我希望用户也能够使用其他一些 "date delimiting" 选项(例如:“5-5-16”)自由输入他们的日期。这是不可能的,因为指定"dateFormat"选项后不能输入“-”符号。
有没有办法解决这个问题或者这是一个错误?
你可以这样做,你需要在parseDate方法中指定格式
$.datepicker.inputFormats = ["dd-mm-yy", "dd/mm/yy", "dd mm yy"];//list formats to be accepted here
$.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;
};
以上代码来自这里
我找到了你的 post 的解决方案。
试试这个代码。
$('#txtDatePicker').datepicker({
dateFormat: 'dd-mm-y'
});
我找到了答案。
有一个 "constrainInput" 选项必须设置为 false。
所以:
$("#datepicker").datepicker({
dateFormat: "dd/mm/yy",
constrainInput: false
});
我正在使用 jquery ui 日期选择器。 我只是想将 dateFormat 设置为类似:"dd/mm/yy",所以我的 javascript 是:
$("#datepicker").datepicker({
dateFormat: "dd/mm/yy"
});
相关的html是:
<input type='text' id='datepicker'>
但是,这样做会限制输入元素中可以输入的文本(例如,我不能输入“-”或“.”)。
我需要此功能,因为我希望用户也能够使用其他一些 "date delimiting" 选项(例如:“5-5-16”)自由输入他们的日期。这是不可能的,因为指定"dateFormat"选项后不能输入“-”符号。
有没有办法解决这个问题或者这是一个错误?
你可以这样做,你需要在parseDate方法中指定格式
$.datepicker.inputFormats = ["dd-mm-yy", "dd/mm/yy", "dd mm yy"];//list formats to be accepted here
$.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;
};
以上代码来自这里
我找到了你的 post 的解决方案。
试试这个代码。
$('#txtDatePicker').datepicker({
dateFormat: 'dd-mm-y'
});
我找到了答案。 有一个 "constrainInput" 选项必须设置为 false。 所以:
$("#datepicker").datepicker({
dateFormat: "dd/mm/yy",
constrainInput: false
});