我需要验证表单。这个表单有一些下拉列表和tinyMCE编辑器,我通过在每个字段后附加字符串“Required”来验证这个表单,如果它是空白的,但是我无法验证tinyMCE编辑器,如果编辑器是空白的,我尝试了类似< / p>
tinyMCE.get('tinyedotor').getContent();
但没有运气。
这是我的fiddle
答案 0 :(得分:14)
getContent()
应该可以正常工作。您的小提琴不包含编辑器值的表单验证代码,这在此非常重要。试试这个:
var editorContent = tinyMCE.get('tinyeditor').getContent();
if (editorContent == '')
{
// Editor empty
}
else
{
// Editor contains a value
}
另请注意,您已为id
下拉菜单声明了多个select
。
修改:您可以使用id
方法获取编辑器容器的getContainer()
:tinyMCE.get('tinyeditor').getContainer()
。在编辑器之后插入错误消息将是这样的:
$('<span class="error">Editor empty</span>').insertAfter($(tinyMCE.get('tinyeditor').getContainer()));
但是,每次用户单击“提交”按钮时,这将创建一个新的span
,因此您可能希望拥有一个具有唯一id
的错误消息容器并检查容器在插入之前已经存在。
修改2 :Updated fiddle。
答案 1 :(得分:9)
您可以执行此操作以检查内容是否为空而不解析html:
var content = tinymce.get('tinymceEditor').getContent({format: 'text'});
if($.trim(content) == '')
{
// editor is empty ...
}
答案 2 :(得分:2)
您可以轻松完成所需的工作。她的解决方案是link to a fiddle。
答案 3 :(得分:1)
使用getcontent()是正确的方法,但是如果用户进入空间怎么办!! ??这是RegEX的完整解决方案 -
var content = tinyMCE.get('tinyeditor').getContent(), patt;
//Here goes the RegEx
patt = /^<p>( \s)+( )+<\/p>$/g;
if (content == '' || patt.test(content)) {
$('.bgcolor').css("border", "1px solid Red")
return false;
}
else {
$('.bgcolor').removeAttr("style")
return true;
}
注意:('。bgcolor')只不过是'tinyeditor'周围的div,在验证时会出现红色边框。
答案 4 :(得分:0)
getContent()
是要走的路。您可以使用tinyMCE.activeEditor
对象并在其上调用getContent()
或通过id获取编辑器实例,就像您正在做的那样。
看起来你的身份证上有一个拼写错误,这可能会导致你的问题。
tinyMCE.get('tinyedotor').getContent();
应该是:
tinyMCE.get('tinyeditor').getContent();
答案 5 :(得分:0)
聚会迟到但使用 tinyMCE V4 以下为我工作。
tinymce.init({
selector: '#editorHtml'
});
function IsCreatePostValid() {
tinyMCE.triggerSave();
if ($('#editorHtml').val().trim().length <= 0) {
return false;
}
return true;
}
其中#editorHtml 是一个文本区域,并且在 triggerSave MCE 将当前的富文本编辑器值填充到相应的文本区域。
所以我正在检查文本区域。