绝对位置';s jQuery验证引擎和CkEditor

绝对位置';s jQuery验证引擎和CkEditor,jquery,ckeditor,jquery-validation-engine,Jquery,Ckeditor,Jquery Validation Engine,我已经搜索了这个网站(和谷歌),但找不到解决我问题的有效方法 我正在使用Posabsolute的验证引擎,它工作得很好。除了我的问题孩子-我的CKeditor格式的文本区域 我知道我需要使用CKEditor.instances.textareaid.updateElement()对textarea进行评估,但无法使其正常工作 有人对此有任何提示/解决方案吗?也许validationEngine.js中有一个设置需要覆盖 欢迎任何指点:)我就是这样做的: if(typeof CK

我已经搜索了这个网站(和谷歌),但找不到解决我问题的有效方法

我正在使用Posabsolute的验证引擎,它工作得很好。除了我的问题孩子-我的CKeditor格式的文本区域

我知道我需要使用
CKEditor.instances.textareaid.updateElement()
对textarea进行评估,但无法使其正常工作

有人对此有任何提示/解决方案吗?也许validationEngine.js中有一个设置需要覆盖

欢迎任何指点:)

我就是这样做的:

         if(typeof CKEDITOR !== 'undefined'){
               for(var i in CKEDITOR.instances){ //editors
                $("form textarea[name="+CKEDITOR.instances[i].name+"]").addClass("validate[required]");
                $("form textarea[name="+CKEDITOR.instances[i].name+"]").attr("data-prompt-position", 'bottomLeft:400,0');
               }
            }

请记住,ValidationEngine仅验证可见字段,CKeditor使用
可见性:hidden隐藏原始文本区域或div;显示:无内联样式。
正如您所发现的,需要使用此代码
CKEditor.instances.textareaId.updateElement()
将编辑器区域的内容传输回原始元素,但还需要做更多的工作

您还需要使原始元素再次可见,并使用
$('textareaId').toggle()
$('textareaId').show()执行此操作。现在,您可以使用以下方法验证所有字段:

$('#formId').validationEngine('validate');
现在出现另一个问题,错误提示不在编辑器区域附近,而是在原始元素处,因为
可见性:hidden
,但这不是问题。我们只需使用
$('#textareaId').toggle()
$('#textareaId').hide()
再次隐藏原始元素,以使提示与编辑器对齐

完整代码 此代码使用的是CKEditor v4和validationEngine v2.5

<form id="yourFormId" onsubmit="return validate(this);">
<textarea id="textareaId" class="ckeditor"></textarea>
</form>
<script>
function validate(form) {
    CKEDITOR.instances.textareaId.updateElement();
    $('#textareaId').toggle();
    validated = $(form).validationEngine('validate');
    $('#textareaId').toggle();

    return validated;
}
</script>

函数验证(表单){
CKEDITOR.instances.textareaId.updateElement();
$('#textareaId').toggle();
validated=$(表单).validationEngine('validate');
$('#textareaId').toggle();
返回验证;
}
如果有多个编辑器元素,则可能需要添加循环。
此代码的唯一缺点是硬编码的原始elementId

//您的html如下所示

form method=“post”name=“formId”id=“formId”action=”“enctype=“多部分/表单数据”onsubmit=“return validateFrm('formId')

我宁愿使用一些CSS技巧。 我会在文本区域使用这种样式

.wysiwyg-editor{
    visibility: hidden !important;
    display: block !important;
    height: 0px;
}

我认为这是一个更干净的解决方案。

在验证之前,您可能必须使用CKEditor数据更新隐藏的输入。
.wysiwyg-editor{
    visibility: hidden !important;
    display: block !important;
    height: 0px;
}