Jeditable Datepicker onblur проблема - PullRequest
1 голос
/ 22 апреля 2010

Я использую встроенное редактирование с использованием Jeditable и datepicker. У меня есть столбец в моей таблице, который отображает дату в виде гиперссылки. Когда я нажимаю на это, он показывает мне средство выбора даты. И когда конкретная дата выбрана, она обновляется в бэкэнде, и ячейка теперь обновляется с измененным значением. Однако у меня проблема с событием onblur при изменении месяца или года. Это событие срабатывает, когда я нажимаю кнопки «Предыдущий» или «Следующий» на элементе управления DatePicker. Это вызывает исключение при выборе даты. Это работает нормально, если выбранная дата находится в текущем месяце. Я перепробовал все возможные решения, перечисленные здесь:

/ stackoverflow.com вопросы / 2007205 / jeditable-DatePicker вызывающего-смазанность, когда меняющийся месяц

Если установленное время ожидания, элемент управления не возвращается к нормальной гиперссылке при закрытии средства выбора даты или события true onblur.

Вот мой код,

$. Editable.addInputType ('datepicker', { element: function (настройки, оригинал) { var input = $ (''); if (settings.width! = 'none') {input.width (settings.width); } if (settings.height! = 'none') {input.height (settings.height); } input.attr ( 'автозаполнения', 'от'); $ (Это) .append (вход); возврата (вход); }, плагин: функция (настройки, оригинал) { var form = this;

    settings.onblur = function(e) { 
        t = setTimeout(function() {
         original.reset.apply(form, [settings, self]);
        }, 100);
     };

    $(this).find('input').datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: 'dd-M-y',
        closeAtTop: true,
        onSelect: function(dateText) { $(this).hide(); $(form).trigger('submit'); }
    });            
},
submit  : function(settings, original) { }

});

$ (function () { $ ('. edit_eta'). editable ('update_must_fix_eta.php', { id: 'bugid', имя: 'eta', Тип: «DatePicker», событие: «клик», выберите: правда, ширина: '50px', ONBLUR: 'отмена', cssclass: «редактируемый», индикатор: «Обновление ETA, пожалуйста, подождите.», стиль: «наследовать», submitdata: {версии: '4.2 (4)', тег: 'REL_4_2_4', qstr: 1} }); });

Я попытался взломать jeditable.js, как упоминалось по этой ссылке: http://groups.google.com/group/jquery-dev/browse_thread/thread/265340ea692a2f47

Даже это не помогает.

Любая помощь приветствуется.

Ответы [ 2 ]

1 голос
/ 08 мая 2011

Да, я использовал то же самое. Мне пришлось отключить кнопки Prev и Next, которые переходят к предыдущему и следующему месяцам соответственно. Я показываю календарь на 3 месяца, когда ссылка нажата, и если пользователь хочет ввести дату, которая не попадает ни в один из этих 3 месяцев, я позволил ему ввести ее вручную, сделав текстовое поле ввода редактируемым. Это решило мою проблему.

1 голос
/ 07 мая 2011

Вы пробовали плагин jeditable-datepicker ? Кажется, он делает именно то, что вам нужно.

Включает jQuery UI Datepicker в Jeditable. Вот демоверсия .

...