当前位置 : 主页 > 网页制作 > JQuery >

jQuery验证插件CKEditor – 在键入时验证

来源:互联网 收集:自由互联 发布时间:2021-06-15
我在textarea上使用CKEditor和jQuery验证插件( http://bassistance.de/jquery-plugins/jquery-plugin-validation/) 使用jQuery插件,可以将字段标记为空或需要. 当一个字段,例如“产品名称”为空,提交表单时该字
我在textarea上使用CKEditor和jQuery验证插件( http://bassistance.de/jquery-plugins/jquery-plugin-validation/)

使用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.

网友评论