Datepicker jQuery,当我直接在输入中编写时很奇怪

时间:2013-07-03 13:14:41

标签: jquery-ui datepicker

我对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']

2 个答案:

答案 0 :(得分:0)

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

请参阅localization documentation and exampledatepicker's API或“本地化”部分(具体建议使用jquery.ui.datepicker-fr.js)。

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

请参阅working example of the datepicker() "localized" for France at http://jsfiddle.net/ZfpQ6/4/

答案 1 :(得分: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")。