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