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 に答える