Symfony2 TinymceBundle

时间:2011-07-29 19:57:15

标签: tinymce symfony

我创建了一个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 个答案:

答案 0 :(得分:8)

显然,关于属性'required =“true”'的chrome存在问题。 http://code.google.com/p/chromium/issues/detail?id=45640

我在提交按钮输入字段中添加了'formnovalidate =“true”'属性,并且工作正常

答案 1 :(得分:2)

tinyMCE.init({
    mode : "specific_textareas",
    editor_selector : "mceEditor",
    setup : function(ed) {
          ed.onChange.add(function(ed, l) {
                  tinyMCE.activeEditor.getElement().value = tinyMCE.activeEditor.getContent();
          });
   }
});

答案 2 :(得分:2)

我尝试了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'
        });
    },

});

答案 3 :(得分:1)

当WYSIWYG隐藏您的textarea但textarea设置为必填字段时,会发生错误。您可以设置'required'=&gt;在构建表单时,在内容textarea控件上为false,以禁用浏览器所需的检查。

$builder->add("content", "textarea", array('required' => false));

答案 4 :(得分:0)

tinyMCE通常会在onsubmit - 事件期间更新隐藏文本区域的内容。 但是,当使用html5验证并且任何输入无效时,不会触发此事件。

因此,除非您在html5验证开始之前强制执行textarea更新,否则您将永远不会获得一个空的并且需要带有tinyMCE的textarea才能正确验证。

我为此错误构建了一个解决方法,希望很快就会合并到原始回购中:https://github.com/stfalcon/TinymceBundle/pull/19

答案 5 :(得分:0)

以博物馆的回应为基础。

我来到这里是因为我使用的是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