Событие DatePicker onClose не запускается при использовании в качестве редактора фона

Я искал в сети, и я не могу найти какой-либо свет для этой проблемы. Вот мой фрагмент.

Backgrid.CustomDateCell = Backgrid.DateCell.extend({
    editor: Backgrid.InputCellEditor.extend({
        attributes: {
            type: "text"
          },
        events: {},
        initialize: function(){
            Backgrid.InputCellEditor.prototype.initialize.apply(this, arguments);
            var _input = this;
            $(this.el).prop('readonly', true);
            $(this.el).datepicker({
                autoclose: true,
                todayHighlight: true,
                format: "mm/dd/yyyy",
                viewMode: "months",
                minViewMode: "months",
                onClose: function(dateText, inst){
                    var command = new Backgrid.Command({});
                    _input.model.set(_input.column.get("name"), dateText);
                    _input.model.trigger("backgrid:edited", _input.model, _input.column, command);
                    command = _input = null;
                }
            });
        }
    })
});

Итак, в основном, я хочу, чтобы вызвать backgrid: редактирование модели ячеек backgrid. Но, похоже, я что-то здесь упускаю. Событие onClose никогда не вызывается, и в консоли не отображается ошибка. Я также попробовал событие onSelect, но с тем же результатом.

заранее спасибо

1 ответ

Решение

Как уже упоминалось в комментариях:

Это загрузчик даты, так что onClose не является допустимым вариантом. Присоедините слушателя к hide событие вместо:

        $(this.el).datepicker({
            autoclose: true,
            todayHighlight: true,
            format: "mm/dd/yyyy",
            viewMode: "months",
            minViewMode: "months"
        });
        $(this.el).on("hide", function(e) {
                var command = new Backgrid.Command({});
                _input.model.set(_input.column.get("name"), e.date);
                _input.model.trigger("backgrid:edited", _input.model, _input.column, command);
                command = _input = null;
            });

e.date должен дать вам эквивалент dateText

Другие вопросы по тегам