我在textarea上使用CKEditor和jQuery验证插件( http://bassistance.de/jquery-plugins/jquery-plugin-validation/) 使用jQuery插件,可以将字段标记为空或需要. 当一个字段,例如“产品名称”为空,提交表单时该字
使用jQuery插件,可以将字段标记为空或需要.
当一个字段,例如“产品名称”为空,提交表单时该字段将被标记为无效.
但是,在输入“产品名称”时,该字段将在键入时自动标记为有效.这很好,但我希望在启用CKEditor的textarea中使用相同的功能.使用简单的textarea(在输入文本时,字段变为有效)一切都很好用,但在将CKEditor添加到textarea后,这不再起作用.
从那时起,您必须在重新验证CKEditor textarea之前单击提交按钮.
关于如何使这项工作的任何想法?
非常感谢您的帮助,stackoverflow在过去的几天里得到了很大的帮助!
更新:
我尝试了你给我的线程的解决方案,但它不起作用:
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); }您必须调整CKEditor textarea以在失去焦点时回写HTML,而不是(我假设这是默认情况下它所做的)提交表单时.
几天前有人有类似的问题,似乎已经成功,check it out.