验证FCKeditor

时间:2010-09-21 07:00:42

标签: javascript fckeditor

如何使用javascript验证FCKeditor的必填字段。

4 个答案:

答案 0 :(得分:2)

试试这个,

var EditorInstance = FCKeditorAPI.GetInstance('message') ; 
if(EditorInstance.EditorDocument.body.innerText.length<=0)
{
alert("This firld is mandatory");
EditorInstance.EditorDocument.body.focus();
return false;
}

<强>来源:

http://dreamtechworld.wordpress.com/2008/12/06/validating-firld-in-fckeditor-using-javascript/

答案 1 :(得分:1)

使用FireBug,查看它正在更新的隐藏textarea。然后检查该元素。

if (document.getElementById('fckinstance').innerHTML === '') {
    alert('required field');
}

这只是一个例子。由于同一页面上存在多个实例,它可能也不会像id那样使用它。

FCKeditor替换的textarea可能是保存其HTML的那个。

另请注意,FCKeditor可以看起来为空白,即使其中有HTML。

答案 2 :(得分:1)

要验证FCKeditor是否为空,请创建以下函数并在验证包含TEXTAREA的编辑器时调用它:

function FCKCopy() {
    for (var i = 0; i < parent.frames.length; ++i ) {
        if (parent.frames[i].FCK)
            parent.frames[i].FCK.UpdateLinkedField();
    }
}

然后添加另一个函数来从TEXTAREA的值中删除HTML标记:

function stripHTML(oldString) {
    var matchTag = /<(?:.|\s)*?>/g;
    return $.trim(oldString.replace(matchTag, ""));
}

在上面的函数中使用了jQuery的trim函数。使用jQuery或将其替换为java脚本的一些修剪功能,例如:

function trimIt(text) {
    rwhite = /\s/;

    trimLeft = /^\s+/;
    trimRight = /\s+$/;

    if ( !rwhite.test( "\xA0" ) ) {
        trimLeft = /^[\s\xA0]+/;
        trimRight = /[\s\xA0]+$/;
    }

    return text.toString().replace( trimLeft, "" ).replace( trimRight, "" );
}

现在您可以检查TEXTAREA的值,例如如下:

if (stripHTML($('message').val()) == '') {
     alert('Please enter Message.');
}

希望它能像我一样有效。

玩得开心

答案 3 :(得分:0)

这可能对某人有用

var EditorInstance = FCKeditorAPI.GetInstance('JobShortDescription');

alert(EditorInstance.GetHTML());

资源是http://docs.cksource.com/FCKeditor_2.x/Developers_Guide/JavaScript_API