記住ValidationEngine只驗證可見字段和CKEDITOR隱藏原來的文字區域,或DIV,與visibility: hidden; display: none;
內聯樣式。
由於您已經發現此代碼CKEditor.instances.textareaId.updateElement()
需要將編輯器區域的內容傳回原始元素,但還需要完成更多操作。
您還需要使原始元素再次可見,並使用$('#textareaId').toggle()
或$('#textareaId').show()
這樣做。現在,您可以驗證這使用所有的字段:
$('#formId').validationEngine('validate');
現在另一個問題出現,錯誤提示是沒有編輯器區域附近,但在由於visibility: 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>
如果您有多個編輯器元素,您可能需要添加一個循環。
唯一的下降與此代碼是硬編碼的原始elementId(s)。
來源
2012-12-05 15:58:56
Kim
驗證前,您可能需要使用CKEditor數據更新隱藏輸入。 – Owlvark