入力セットの編集可能モードでpickadate.jsライブラリを使用しています。デフォルトでは、日付がキーボードで (入力から手動で) 変更されたときに、ピッカーはカレンダーを自動的に更新しません。したがって、更新するために機能を作成したいと思います。日付を手動で変更した後に再度開いたときのカレンダー。
したがって、コールバック メソッド onOpen で、カレンダーの日付を入力の日付に設定します。これは、形式が DD/MM/YYY の場合に機能します。形式が MM/YYYY の場合、手動で変更した後に入力をクリックするたびに、今日の日付で入力します。
var $input = $('#pickadate').pickadate({
onOpen: function()
{
var picker = $('#pickadate').pickadate('picker');
var dateinput = $('#pickadate').val();
if(moment(dateinput, 'MM/YYYY', true).isValid())
{
picker.set('select', dateinput, { format: 'mm/yyyy' });
}
},
onClose: function()
{
$('#pickadate').focus();
},
editable: true,
format: 'mm/yyyy',
formatSubmit: 'mm/yyyy'
});
https://jsfiddle.net/cg29dned/
フィドルは私のプロジェクトとまったく同じように機能していないことに注意してください(たとえば、月を変更することはできません)が、問題を確認するには十分に機能しています。本当です。
手順:
- 入力をクリックし、日付を選択します。
- 入力で日付を手動で変更します。
- カレンダーを再開
最初の例では今日の日付を設定し、2 番目の例では実際にカレンダーを更新します (選択した日の css が機能していないため、月を手動で変更して更新を確認することをお勧めします)。