2016-10-25 20 views
6

私はhtmlでjQueryマルチ日付ピッカーを使用しています。私は日付ピッカーの最初の日付を選択するときにうまくいきますが、2番目の日付を選択すると現在の月にジャンプしますが、日付ピッカーの値は入力ボックスに追加されます。jQueryマルチ日付ピッカーを使用してカレンダーを現在の月にジャンプ

私はこのコードで間違ってやったのか分からない:

$('#datePick').multiDatesPicker({ 
    beforeShowDay: my_array, 
    // For disabling all "Sundays" 
    dateFormat: "d/m/yy", 
    maxDate: "+3m", 
    minDate: "-1m", 
    multidate: true, 
    addDisabledDates: My_array, 
    onSelect: function load() { 
    } 
}); 

enter image description here

enter image description here

誰もがこの問題を解決するために私を助けることができますか?

答えて

1

優秀な質問です。

あなたが気づいた奇妙な動作を修正するために、documentationに何も見つかりませんでした。
本当には私にバグのように見えます。

私はそれに取り組んで、onSlectコールバックを使用してウォークアウェイを見つけました。
これは、ビルトインアニメーションの表示/非表示を無効にすることを意味します。
私は大したことだとは思わない...

this CodePen demoを参照してください。ここで問題が再現され、この解決策と比較することができます。

そして、以下は、切り取りと貼り付けが簡単なコード(デモのconsole.logsを除く)です。

$('#datePickTweaked').multiDatesPicker({ 

    // OPTIONS 
    showAnim:"",       // Disables the show/hide animation. 
    beforeShowDay: $.datepicker.noWeekends, // No week-ends. 
    dateFormat: "d/m/yy", 
    maxDate: "+3m", 
    minDate: "-1m", 
    multidate: true, 
    defaultDate:"0d",      // Default date selection as of "today". 
              // Needed to show the right month on focus. 


    // The "walk-around" is HERE, in the "onSlect" callback. 

    onSelect: function(){ 

     // Get the "datepicker" object. 
     var datepickerObj = $(this).data("datepicker"); 

     // Get the "settings" object within "datepicker". 
     var datepickerSettings = datepickerObj.settings; 

     // Get the last date picked. 
     var tempDay = datepickerObj.selectedDay; 
     var tempMonth = datepickerObj.selectedMonth+1; 
     var tempYear = datepickerObj.selectedYear; 
     var pickedDate = tempDay+"/"+tempMonth+"/"+tempYear; 

     // Remove previous "defaultDate" property. 
     delete datepickerSettings["defaultDate"]; 

     // Add a new defaultDate property : value. 
     datepickerSettings.defaultDate=pickedDate; 

     // "Hacky trick" to avoid having to click twice on prev/next month. 
     $("#datePickTweaked").blur(); 
     setTimeout(function(){ 
      $("#datePickTweaked").focus(); 
     },1);        // 1 millisecond delay seems to be enought!!! 
    } 
}); 
+0

ありがとうございました。私にはうってつけです。 –

関連する問題