这不是一个问题,而是一个我想与大家分享的答案。我刚刚花了四个多小时的时间来研究一些东西,结果发现它是 TinyMCE 或 Firefox 中的一个错误。
加载 TinyMCE 后,如果指定 HTML5required
上的属性textarea
该表单不会在 Firefox 中提交。没有错误,Firebug 中没有任何内容,只是顽固地拒绝提交。
我不知道这是 FF 还是 TinyMCE 的 bug,也不在乎。我只是不想让其他程序员经历我在过去几个小时所经历的烦恼。
问一个问题:这个错误是否记录在任何地方?有人知道吗?
如果这是一个不适合 Stack Overflow 的帖子,请告诉我,我会删除它。
这个问题远不是 Firefox 的问题。事实上,Chrome 和 Opera(在“大脑”被移植到 Chrome 之前的“老”歌剧)以及可能所有其他现代浏览器都会给你带来同样的头痛。
对于 Opera 和 Chrome,都有一个标志坚持认为该字段是必填字段(尽管事实上您有内容)。 Chrome 足够好,可以在控制台中向您显示以下错误消息:
An invalid form control with name='<name of textarea>' is not focusable.
当您考虑到 TinyMCE 实际上创建了一个可编辑的div
容器,隐藏你原来的textarea
。就是这个隐藏的textarea
(承载一个required
属性),浏览器希望您为其提供值。
在 Github 上,这里:https://github.com/tinymce/tinymce/issues/2584 https://github.com/tinymce/tinymce/issues/2584,有一个建议的解决方案,如下所示:
// fix tinymce bug
if($this.is('[required]')){
options.oninit = function(editor){
$this.closest('form').bind('submit, invalid', function(){
editor.save();
});
}
}
我还没有亲自测试过这个片段,但是只要您能够将其放到正确的位置,研究它可能会让您继续前进。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)