设置jquery ui datepicker的dateFormat会限制输入

时间:2015-06-04 09:52:20

标签: jquery jquery-ui datepicker

我正在使用jquery ui datepicker。 我只想将dateFormat设置为:" dd / mm / yy",所以我的javascript是:

$("#datepicker").datepicker({
     dateFormat: "dd/mm/yy"
});

相关的html是:

<input type='text' id='datepicker'>

但是,这样做会限制可输入到输入元素中的文本(我无法输入&#34; - &#34;或&#34;。&#34;例如)。< / p>

http://jsfiddle.net/5sVpA/3/

我需要这个功能,因为我希望用户能够自由地使用其他一些&#34;日期分隔&#34;选项(例如:&#34; 5-5-16&#34;)。这是不可能的,因为&#34; - &#34;在指定&#34; dateFormat&#34;之后无法输入符号选项。

有没有办法解决这个问题还是一个错误?

3 个答案:

答案 0 :(得分:1)

我找到了答案。 有一个&#34; constrainInput&#34;必须设置为false的选项。 所以:

$("#datepicker").datepicker({
     dateFormat: "dd/mm/yy",
     constrainInput: false
});

答案 1 :(得分:0)

你可以这样做,你需要在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;
};

以上代码来自https://stackoverflow.com/a/18839641/4810628

答案 2 :(得分:0)

我为你的帖子找到了解决方案。

试试这段代码。

$('#txtDatePicker').datepicker({
    dateFormat: 'dd-mm-y'
});