【发布时间】:2009-12-15 16:21:27
【问题描述】:
我在 textarea 上使用 CKEditor 和 jQuery 验证插件 (http://bassistance.de/jquery-plugins/jquery-plugin-validation/)
使用 jQuery 插件可以将字段标记为空或必填。 当一个字段例如“产品名称”为空,提交表单时该字段将被标记为无效。
但是,在输入“产品名称”时,该字段将在输入时自动标记为有效。这很好,但我希望我的启用 CKEditor 的 textarea 也一样。纯文本区域一切正常(输入文本时,该字段变为有效),但是在将 CKEditor 添加到文本区域后,这不再起作用了。
从那时起,您必须在 CKEditor textarea 重新验证之前单击提交按钮。
关于如何完成这项工作的任何想法?
更新:
我尝试了您给我的线程中的解决方案,但它不起作用: Using jQuery to grab the content from CKEditor's iframe
我有:
CKEDITOR.instances["page_content"].document.on('keydown', function(event)
{
CKEDITOR.tools.setTimeout( function()
{
$("#page_content").val(CKEDITOR.instances.page_content.getData());
}, 0);
});
但这一直给我:“CKEDITOR.instances.page_content.document 未定义”
我的 textare 的 id 是“page_content”
点击按钮后效果很好,但正如你所见,我需要以某种方式触发 keydown 事件
$("#btnOk").click(function(event) {
CKEDITOR.instances.page_content.updateElement(); //works fine
});
更新 2:
这段代码是正确的,它将数据从 CKEDITOR 获取到我的 textarea 中,但我的验证插件仍然没有发生任何事情,它没有在 CKEditor 中“在我键入时做出响应”,而它应该做出反应并说该字段是好的,当我输入一些文本时
CKEDITOR.instances["page_content"].on("instanceReady", function()
{
//set keyup event
this.document.on("keyup", updateTextArea);
//and paste event
this.document.on("paste", updateTextArea);
});
function updateTextArea()
{
CKEDITOR.tools.setTimeout( function()
{
$("#page_content").val(CKEDITOR.instances.page_content.getData());
}, 0);
}
【问题讨论】:
标签: jquery forms validation ckeditor