2013-07-03 25 views
1

我对jQuery datepicker有点奇怪。Datepicker jQuery,当我直接在输入中写入时很奇怪

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

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

当我写的一年(这里是1)的第一个数字是,jQuery在我的日期选择器选择automaticaly日期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'] 
+0

您能否提供样本链接? –

+0

我试过你的配置,它工作正常,如果我在datepicker进入2001的年份写入“1”,但它不会删除输入。 Ckeck http://jsfiddle.net/ZfpQ6/ –

+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/

+0

不,总是相同的问题.... –

+0

只是FYI(“PVI”,en francais?):这个类似的问题也解决本地化:http://stackoverflow.com/q/11571557/1430996 –

+0

你有没有包括' jquery.ui.datepicker-fr.js'文件?看到http://jsfiddle.net/ZfpQ6/4/ ...当我在字段中输入“19/05/1990”时,它会选择正确的日期... –

0

如果你想防止跳跃到2001年的时候你在今年1型则可以覆盖插件的行为重写功能_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”)。