javascript - Jquery UI 日期选择器日期格式

标签 javascript jquery date jquery-ui datepicker

我在我的项目中的表单中使用 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/

相关文章:

java - MongoDB 存储不正确的 DOB

javascript - 使用 jquery 格式化和打印日期

javascript - 观察 bool 值时AngularJS指令双向数据绑定(bind)不起作用

javascript - 通过元素的 id 触发样式的任何形式

javascript - 为什么 JavaScript 数组索引最多为 4294967294 而不是 4294967295?

javascript - 使用 svg 和 javascript 的交互式 map

javascript - 有没有办法使用 YepNope.js 为脚本提供动态名称?

jquery旋转可以旋转表格html元素

javascript - 正则表达式 - 如果在大括号内则不匹配

mysql - 查询以查看订阅是否在两个日期范围内有效