我正在使用输入设置为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输入被使用因为已知可编辑为真时的错误。
步骤:
在第一个示例中,它设置了今天的日期,在第二个示例中它确实更新了日历(我建议您手动更改月份以查看更新,因为所选日期的CSS不起作用)