Как я могу заставить Parsley обнаруживать содержимое в форме tinyMCE? - PullRequest
0 голосов
/ 26 мая 2020

У меня есть форма, созданная Codeigniter, и я прикрепил редактор tinymce к текстовому редактору внутри in. Все работает нормально, но когда я отправляю форму, введенное содержимое не обнаруживается, и форма отклоняется петрушкой . См. Ниже:

tinyMCE & Parsley form

Следующее js в заголовке страницы:

<script type="text/javascript">
  tinymce.init({
      selector: '#mytextarea',
      height: 500,
      menubar: false,
      plugins: "lists",
      toolbar: 'undo redo | ' +
              'bold italic bullist numlist | alignleft aligncenter ' +
              'removeformat | help'
    });
</script>

А это html для текстовой области:

<div class="item form-group">
    <label class="control-label col-md-3 col-sm-3 col-xs-12" for="notes">Notes <span class="required">*</span></label>
    <div class="col-md-6 col-sm-6 col-xs-12">
            <textarea name="note" cols="40" rows="10"  id="mytextarea" required="required" class="form-control" name="note" rows="4"></textarea>
    </div>
</div>

Для полноты это PHP для создания формы (взято из шаблона Smarty):

<div class="item form-group">
    <label class="control-label col-md-3 col-sm-3 col-xs-12" for="notes">Notes <span class="required">*</span></label>
    <div class="col-md-6 col-sm-6 col-xs-12">
        {php}
            echo form_textarea('note', '', array('id'=>"mytextarea", 'required'=>"required", 'class'=>"form-control", 'name'=>"note", 'rows'=>"4"));
        {/php}
        {php}
            echo form_error('note');
        {/php}
    </div>
</div>

Что мне делать нужно сделать, чтобы Петрушка поняла, что в форме что-то есть?

1 Ответ

2 голосов
/ 26 мая 2020

Когда TinyMCE находится на странице, он (визуально) заменяет текстовое поле серией элементов div (меню, панели инструментов, строки состояния) и iframe (область редактирования содержимого). Это означает, что при вводе в TinyMCE вы вообще не обновляете текстовое поле.

В зависимости от того, как вы проверяете форму, вам может сначала потребоваться сообщить TinyMCE об обновлении соответствующего текстового поля с помощью вызова triggerSave() API.

Например:

tinymce.triggerSave();

Эта форма команды заставит все экземпляры TinyMCE обновить свои базовые текстовые поля.

https://www.tiny.cloud/docs/api/tinymce/root_tinymce/#triggersave

...