x-editable datepicker Только год/месяц

Я изменил средство выбора даты пользовательского интерфейса jQuery, чтобы отображать только год и месяц. Я использовал эти события javascript для обработки данных: http://jsfiddle.net/2puz2/4/

$( "#datepicker" ).datepicker({
    showButtonPanel: true,
    changeMonth: true,
    changeYear: true,
    dateFormat: 'yy-mm',
    currentText: 'This Month',
    onClose: function(dateText, inst) {
        var month = $('#ui-datepicker-div .ui-datepicker-month :selected').val();
        var year = $('#ui-datepicker-div .ui-datepicker-year :selected').val();
        $(this).datepicker('setDate', new Date(year, month, 1));
        var setMonth = ('0' + (parseInt(month) + 1)).slice(-2);
        $(this).val('Start: ' +  year + '-' + setMonth);
    },
    beforeShow: function(input, inst) {
        if ((datestr = $(this).val()).length > 0) {
            var dateOutOfDesc = datestr.match(/\d{4}\-\d{2}/);
            var dateparts = dateOutOfDesc[0].split('-');
            var year = dateparts[0];
            var month = dateparts[1];
            $(this).datepicker('option', 'defaultDate', new Date(year, month-1, 1));
            $(this).datepicker('setDate', new Date(year, month-1, 1));
        }
    }
});

Теперь я хотел бы использовать x-editable для редактирования этой даты, но я не могу понять, как прикрепить эти функции обратного вызова к встроенному средству выбора даты. я пробовал

editable.input.options.datepicker.beforeShow = function(input, inst) {
...

См. это http://jsfiddle.net/L2Z9Q/18/.

Но похоже, что это происходит после того, как средство выбора даты уже инициализировано.

Есть идеи?


person jdog    schedule 30.05.2014    source источник


Ответы (1)


Для обновить дату средства выбора даты вместо onClose. У меня нет объяснения, почему onClose не стреляет...

$('#yearmonth').editable({
    pk: 1,
    format: 'yyyy-mm',    
    viewformat: 'yyyy-mm',    
    datepicker: {            
        onChangeMonthYear: function(  year,  month,  inst){
            $(this).datepicker('setDate', new Date(year, month-1, 1));
        }
    }
})

Скрипка

person bobthedeveloper    schedule 01.06.2014
comment
очень близко! Единственная проблема в том, что на самом деле у меня есть формат My, и он не подхватывается форматом просмотра jsfiddle.net/L2Z9Q/21 Я проверил токены здесь: api.jqueryui.com/datepicker/# формат утилитыДата - person jdog; 01.06.2014
comment
Вы имеете в виду, что выпадающий список года состоит из 4 цифр, а не из 2? - person bobthedeveloper; 01.06.2014
comment
Привет, нет, он просто игнорирует то, что находится в редактируемой ячейке, вместо этого по умолчанию используется текущий месяц/год. Это с 4-значным годом, но без разницы. jsfiddle.net/L2Z9Q/23 - person jdog; 02.06.2014
comment
Установите атрибут data-value вместе со свойством формата (должен содержать день, я думаю). Чтобы показать дату, используйте свойство viewformat. jsfiddle.net/L2Z9Q/24 - person bobthedeveloper; 02.06.2014