3

我正在使用pickadate.js库,输入设置为true的可编辑模式。默认情况下,当通过键盘更改日期(手动从输入)时,选择器不会自动更新日历。所以我想创建一个功能以更新手动更改日期后重新打开的日历。

因此,在 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/

请注意,小提琴的工作方式与我的项目中的不完全一样(例如无法更改月份),但工作足以看到问题。此外,由于可编辑时的已知错误,使用了 onClose 方法和输入上的 Jquery onclick是真的。

脚步:

  1. 点击输入,选择一个日期。
  2. 在输入中手动更改日期。
  3. 重新打开日历

在第一个示例中,它设置了今天的日期,而在第二个示例中,它确实更新了日历(我建议您手动更改月份以查看更新,因为所选日期的 css 不起作用)

4

0 回答 0