CKEditor не сохраняет изменения при использовании во всплывающем окне подсказки - PullRequest
0 голосов
/ 17 октября 2018

У меня есть всплывающее окно с использованием всплывающей подсказки (http://iamceege.github.io/tooltipster/), содержащей текстовую область, в которой я хочу использовать CKEditor. У меня установлена ​​версия 4.10.1, которая работает со стандартными страницами, но при использовании внутри возникают проблемывсплывающее окно.

Редактор отображается правильно, но отправка формы, изменения содержимого в CKEditor не передаются. console.log показывает, что содержимое текстовой области такое же, как было, когда всплывающее окно всплывающей подсказки было изначальнозагружен.

Если я отключаю CKEditor, содержимое обновляется корректно.

Текстовое поле создается с помощью этого кода:

<td class="main" width="100%"><?php echo zen_draw_textarea_field('products_description[' . $languages[$i]['id'] . ']', 'soft', '100%', '30', htmlspecialchars((isset($products_description[$languages[$i]['id']])) ? stripslashes($products_description[$languages[$i]['id']]) : zen_get_products_description($pInfo->products_id, $languages[$i]['id']), ENT_COMPAT, CHARSET, TRUE), 'class="editorHook"');?></td>

Скрипт для отправки содержимого страницы после любых полейбыло отредактировано

// start confirm edit product script
$(document).ready(function() {
    // Variable to hold original content
    var original_content = '';
    $('.product-edit-<?php echo $products_id; ?>').submit(function(e){
        e.preventDefault();
        console.log($(this).serialize());
        $.ajax({
            url: 'product_edit_update_ajax.php',
            type: 'POST',
            data: $(this).serialize(),
            dataType: 'html'
        })
        .done(function(data) {
            //console.log(data);
            var obj = JSON.parse(data);
            $('.tooltip-edit-<?php echo $products_id; ?>').tooltipster('close');
            var elem = $('.model-<?php echo $products_id; ?>');
            var elem2 = $('.name-<?php echo $products_id; ?>');
            elem.fadeOut('slow', function() {
                elem.html(obj.asHtml).fadeIn('slow', function() {
                    elem.delay(1200).fadeOut('slow', function() {
                        elem.html(obj.model).fadeIn('slow');
                        elem2.html(obj.name).fadeIn('slow');
                    });
                });
            });
        })
        .fail(function(){
            alert('Ajax Submit for Edit Product Failed ...'); 
        });
    });
});
// end confirm edit product script

Сценарий, который вызывает CKEditor:

$(document).ready(function() {
  <?php echo $jsLanguageLookupArray ?>
  $('textarea').each(function() {
    if ($(this).hasClass('editorHook') || ($(this).attr('name') != 'message' && ! $(this).hasClass('noEditor')))
{
    index = $(this).attr('name').match(/\d+/);
    if (index == null) index = <?php echo $_SESSION['languages_id'] ?>;
    CKEDITOR.replace($(this).attr('name'),
    {
      coreStyles_underline : { element : 'u' },
      width : 760,
      language: lang[index]
      });
    }
  });
});

Есть ли особый параметр, который мне нужно использовать, чтобы позволить CKEditor функционировать в подсказке?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...