Symfony2 TinymceBundle - PullRequest
       6

Symfony2 TinymceBundle

5 голосов
/ 29 июля 2011

Я создал ArticleController для отображения формы с полями: title (text) и content (textarea), и все работает хорошо, пока я не добавлю class = "tinymce" в поле textarea в шаблоне. тогда я получаю эту ошибку: 'Недопустимый элемент управления формы с именем =' form [content] 'не может быть сфокусирован.' Я следовал за документацией, чтобы добавить атрибут 'class', и редактор хорошо отображает в браузере, только когда я отправляю форму, я получаю сообщение об ошибке.

Есть идеи, что может быть причиной этого?

{{ form_errors(form) }}

{{ form_widget(form.title) }}
{{ form_widget(form.content, { 'attr': {'class': 'tinymce' }} ) }}

{{ form_rest(form) }}

<input type="submit" />

Ответы [ 6 ]

8 голосов
/ 30 июля 2011

Очевидно, что в chrome существует проблема с атрибутом 'required = "true"'.http://code.google.com/p/chromium/issues/detail?id=45640

Я добавил атрибут 'formnovalidate = "true"' в поле ввода кнопки отправки, и он отлично работает

2 голосов
/ 15 февраля 2012

Я попробовал предложение от Musefan, и оно только частично сработало, но заставило меня поэкспериментировать.

Вот кое-что, что работает для меня. Протестировано на Firefox 10.0.1, IE9 и Chrome 17.

Где я устанавливаю tinyMCE.activeEditor.getElement().value = 'test', это может быть любое значение, отличное от ''. Не уверен, почему это правда.

tinyMCE.init({
    mode : "specific_textareas",
    editor_selector : "tinymce",

    setup : function(ed)
    {
        // This is needed when the textarea is required for html5
        ed.onInit.add(function(ed)
        {
                      tinyMCE.activeEditor.getElement().value = 'test'
        });
    },

});
2 голосов
/ 14 декабря 2011
tinyMCE.init({
    mode : "specific_textareas",
    editor_selector : "mceEditor",
    setup : function(ed) {
          ed.onChange.add(function(ed, l) {
                  tinyMCE.activeEditor.getElement().value = tinyMCE.activeEditor.getContent();
          });
   }
});
1 голос
/ 18 октября 2011

Ошибка возникает, когда WYSIWYG скрывает текстовую область, но для текстовой области установлено обязательное поле.Вы можете установить 'required' => false в вашем текстовом элементе управления контентом при создании формы, чтобы отключить обязательную проверку браузера.

$builder->add("content", "textarea", array('required' => false));
0 голосов
/ 02 апреля 2012

Опираясь на ответ музефанов выше.

Я пришел сюда, потому что я использую Simple Form, Twitter Bootstrap и tinymce-rails. Если вы используете tinymce-rails, вам нужно отредактировать строку, отмеченную в ответе на ваш файл tinymce.yml. Ваш окончательный файл должен выглядеть примерно так.

theme_advanced_toolbar_location: top 
theme_advanced_toolbar_align: left
theme_advanced_statusbar_location: bottom
theme_advanced_buttons3_add:
  - tablecontrols
  - fullscreen
plugins:
  - table
  - fullscreen
mode:
  - specific_textareas
0 голосов
/ 27 декабря 2011

tinyMCE обычно обновляет содержимое скрытой текстовой области во время onsubmit события.Это событие, однако, не вызывается, когда используется проверка html5 и любой ввод недопустим.

Поэтому вы никогда не получите пустую и требуемую текстовую область с tinyMCE сверху для правильной проверки, если вы не принудите обновление текстовой области до начала проверки html5.

Я создал обходной путь для этой ошибки, которая, надеюсь, будет добавлена ​​в исходное хранилище в ближайшее время: https://github.com/stfalcon/TinymceBundle/pull/19

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