具有html5必需属性的tinyMCE textarea的表单无法提交

Fre*_*ley 9 html5 tinymce required

这不是问题,而是我想与您分享的答案.我刚刚花了四个多小时把头发撕成了一些东西,结果证明是TinyMCE或Firefox中的一个错误.

加载TinyMCE后,如果在表单required上指定HTML5 属性,textarea则不会在Firefox中提交.没有错误,Firebug中没有任何内容,只是顽固拒绝提交.

我不知道这是一个FF或TinyMCE错误,并不是真的在乎.我只是不希望其他程序员经历过我最后几个小时所经历的恶化.

提出一个问题:这个错误记录在哪里吗?有人知道吗?

如果这是Stack Overflow的不合适帖子,请告诉我,我将删除它.

Ife*_*kwo 5

这个问题远不是 Firefox 的问题。事实上,Chrome 和 Opera(在“大脑”被移植到 Chrome 之前的“老”歌剧)以及可能所有其他现代浏览器都会给你带来同样的头痛。

对于 Opera 和 Chrome,都有一个标志坚持认为该字段是必填字段(尽管事实上您有内容)。Chrome 足够好,可以在控制台中向您显示以下错误消息:

An invalid form control with name='<name of textarea>' is not focusable.
Run Code Online (Sandbox Code Playgroud)

当您考虑到 TinyMCE 实际上创建了一个可编辑div容器,隐藏了原始textarea. 浏览器期望您为其提供值的就是这个隐藏的textarea(带有属性)。required

在 Github 上,这里: 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();
                });
            }
        }
Run Code Online (Sandbox Code Playgroud)

我还没有亲自测试过这个片段,但是只要您能够将其放到正确的位置,研究它可能会让您继续前进。


小智 0

我知道这是两年前问过的,但我遇到了同样的问题,所以回答你的问题:

我在这里找到了官方错误报告:http://www.tinymce.com/develop/bugtracker_view.php ?id=5671