ValidationEngine は可視フィールドのみを検証し、CKeditor はvisibility: hidden; display: none;
インライン スタイルで元のテキスト領域または div を非表示にすることに注意してください。
お気づきのとおり、このコードCKEditor.instances.textareaId.updateElement()
はエディター領域のコンテンツを元の要素に転送するために必要ですが、さらに多くの作業が必要です。
また、元の要素を再び表示する必要があり、$('#textareaId').toggle()
orを使用$('#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>
複数のエディター要素がある場合は、ループを追加することができます。このコード
の唯一の欠点は、元の要素 ID がハードコードされていることです。