Написал на JS надстройку над полем в карточке Сделки.
Но при нажатии на кнопку "Сохранить" Битрикс не сохраняет введённое программно значение для textarea. Сохраняет только если нажать какую-нибудь кнопку на клавиатуре, находясь в textarea.
Пробовал триггерить события change, keyup, keydown на textarea, но ничего из этого не помогло.
Подскажите, как сказать Битриксу, что поле изменилось?
Код |
---|
BX.addCustomEvent('onAjaxSuccess', function (event) { if (event.FIELD && event.FIELD.UF_CUSTOM_COMMENT) { var textarea = $('[name="UF_CUSTOM_COMMENT"]'); // Удаляем старые комменты textarea.siblings('.iu-fast-comment').remove(); // Добавляем новые комменты var comments = [ { label: 'не отвечает', value: 'не отвечает' }, { label: 'не доступен', value: 'не доступен' }, { label: 'автоответчик', value: 'автоответчик'} ]; // Фабрика обработчиков для добавления "готового комментария" в textarea var handler = function (text) { return function () { var dt = new Date(); var txt = dt.format('dd.mm.yyyy') + ': ' + text + '\n'; textarea.val(txt + textarea.val()); textarea.selectRange(txt.length - 1); textarea.focus(); textarea.trigger('change'); }; }; // Добавляем под textarea список "быстрых комментариев" for (var key = comments.length - 1; key >= 0; key --) { var comment = comments[key]; var $comment = $('<span>') .addClass('iu-fast-comment') .text(comment.label); // По клику на комментарий подставляем его значение в textarea $comment.on('click', handler(comment.value)); textarea.after($comment); } } }); |
Но при нажатии на кнопку "Сохранить" Битрикс не сохраняет введённое программно значение для textarea. Сохраняет только если нажать какую-нибудь кнопку на клавиатуре, находясь в textarea.
Пробовал триггерить события change, keyup, keydown на textarea, но ничего из этого не помогло.
Подскажите, как сказать Битриксу, что поле изменилось?