1

我对 jQuery datepicker 有一些奇怪的地方。

如果我用 datepicker 选择一个日期,没关系,没问题。

但是如果我直接在输入中写一个日期,例如:(19/05/1990法语格式)

当我写一年的第一个数字(这里是 1)时,jquery 会自动选择2001我的日期选择器中的日期并删除我输入的值....

你有想法吗 ?

编辑:在这里,我使用的所有选项

yearRange: "-113:+0",
                changeMonth: true,
                changeYear: true,
                closeText: 'Fermer',
                dateFormat: "dd/mm/yy",
                prevText: '<Préc',
                nextText: 'Suiv>',
                currentText: 'Courant',
                monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin',
                'Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
                monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun',
                'Jul','Aoû','Sep','Oct','Nov','Déc'],
                dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
                dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'],
                dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa']
4

2 回答 2

0

datepicker()实例化函数时需要指定正确的本地化。

请参阅本地化文档和示例或datepicker 的 API的“本地化”部分(特别建议使用jquery.ui.datepicker-fr.js)。

$( selector ).datepicker( $.datepicker.regional[ "fr" ] );

在 http://jsfiddle.net/ZfpQ6/4/ 上查看法国“本地化”的工作示例datepicker()

于 2013-07-03T13:21:21.883 回答
0

如果您想在输入 1 年份时防止跳转到 2001,您可以_doKeyUp在创建实例之前覆盖插件的行为来覆盖函数。

var oldKeyUp = $.datepicker._doKeyUp;

$.datepicker._doKeyUp = function(event){
    var inst = $.datepicker._getInst(event.target);
    var tmpValue = inst.input.val();
    var arr = tmpValue.split('/');
    if (arr.length == 3){
        if (arr[2].length == 4){
            return oldKeyUp(event);
        }
    }
    return false;
}

$( "#datepicker" ).datepicker({...});

有了这个,插件将等到您拥有完整的 4 位年份(假设格式为“dd/mm/yy”)。

于 2013-07-03T14:16:14.413 回答