我想测试CKEditor(Rich Text)字段是否为空,作为某些业务逻辑的一部分。 我不想使用内置的验证功能。
如果CK编辑器字段之前有文本,然后删除此文本,则仍有内容,例如
<p dir="ltr">
</p>
我可以使用以下方法获取此文本字符串的句柄:
dataVar = xspdoc.getDocument().getMIMEEntity(dataNamevar).getContentAsText();
有没有办法测试CKEditor字段是否没有可见文本?
答案 0 :(得分:2)
从技术上讲,如果它在你的问题中显示的内容中只有一条可见的换行符,则它并非真正“空”。
实际上,您必须解析内容值,以确定是否有内容不是内部标记或少数特殊字符等等。
我倾向于在js中执行此操作,如果必须,通过获取整个文本字符串并将其拆分为基于“&lt;”的数组然后获取数组的每个元素并删除“&gt;”左侧的文本,然后修剪。这留下了一个空字符串或文本在任何标签之外的数组。从那里可以很容易地检查数组中的任何字符串,看它们是否为空,而不是“”。
这可能比我不知道的一些内置解析器更麻烦,但它相当可靠和快速。 (也可以在公式语言中使用非常类似的方法。)
在ssjs公式中你可以:
var checkString = @trim(@replacesubstring(@implode( @trim (@right( @explode( sourceHTMLstring , "<" ) , ">" ) ) , " "), " " , ""));
if(checkstring == "") {
// *** You have no content
} else {
// *** you have content
}
显然,这可以在纯粹的javascript中轻松完成,但旧的公式语言在我的脑海中根深蒂固,我只是出于习惯这样做。
**另请注意:您可能需要检查&lt; img&gt;在那里标记以防万一除了将图像放在富文本中之外什么都没做。
答案 1 :(得分:0)
CKEditor有自己的API,我想这是正确的使用方法: http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.editor.html#getData
答案 2 :(得分:0)
答案 3 :(得分:0)
检查CKEditor是否为空
对于任何浏览器
var editor=CKEDITOR.instances.editorName.getData();
答案 4 :(得分:0)
我找到了最佳答案
function validateCKEDITORforBlank(ckData)
{
ckData = ckData.replace(/<[^>]*>|\s/g, '');
var vArray = new Array();
vArray = ckData.split(" ");
var vFlag = 0;
for(var i=0;i<vArray.length;i++)
{
if(vArray[i] == '' || vArray[i] == "")
{
continue;
}
else
{
vFlag = 1;
break;
}
}
if(vFlag == 0)
{
return true;
}
else
{
return false;
}
}