手动更改日期

时间:2016-07-29 11:30:34

标签: javascript input datepicker pickadate

我正在使用输入设置为true的可编辑模式的 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/

请注意,小提琴与我的项目完全不同(例如月份无法更改),但是工作足以查看问题。另外,onClose方法和Jquery onclick输入被使用因为已知可编辑为真时的错误。

步骤:

  1. 点击输入,选择日期。
  2. 在输入中手动更改日期。
  3. 重新开启日历
  4. 在第一个示例中,它设置了今天的日期,在第二个示例中它确实更新了日历(我建议您手动更改月份以查看更新,因为所选日期的CSS不起作用)

0 个答案:

没有答案