我试图找出如何从编辑器验证内容,例如,确保内容的长度至少为200个字符。通常,使用常规textarea,我可以检索值并从那里验证它。根据我的理解,这并不容易。
答案 0 :(得分:2)
我编写了一个简单的函数,可以计算文档中插入的字符数。
/**
* Returns length of the text inserted to the specified document.
*
* @param {module:engine/model/document~Document} document
* @returns {Number}
*/
function countCharacters( document ) {
const rootElement = document.getRoot();
return countCharactersInElement( rootElement );
// Returns length of the text in specified `node`
//
// @param {module:engine/model/node~Node} node
// @returns {Number}
function countCharactersInElement( node ) {
let chars = 0;
for ( const child of node.getChildren() ) {
if ( child.is( 'text' ) ) {
chars += child.data.length;
} else if ( child.is( 'element' ) ) {
chars += countCharactersInElement( child );
}
}
return chars;
}
}
您可以在此处查看其工作原理 - https://jsfiddle.net/pomek/kb2mv1fr/。
答案 1 :(得分:-1)
CKeditor有自己的内置函数,用于在文本编辑器中检索数据:
textbox_data = CKEDITOR.instances.mytextbox.getData();//mytextbox is id of textarea
然后你可以使用字符串对象的长度属性:
alert(str.length);