Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将公共代码与CKEditor和jQuery验证一起使用_Javascript_Jquery_Jquery Validate_Ckeditor - Fatal编程技术网

Javascript 将公共代码与CKEditor和jQuery验证一起使用

Javascript 将公共代码与CKEditor和jQuery验证一起使用,javascript,jquery,jquery-validate,ckeditor,Javascript,Jquery,Jquery Validate,Ckeditor,我正在一个项目中使用CKEditor和jQuery验证插件 在过去的几天里,我在StackOverflow.com上读了一些非常有用的帖子,这些帖子确实帮助我获得了CKEditor的验证,谢谢 现在,我想将我编写的用于处理一个编辑器实例的代码推广到项目的其余部分,理想情况下,不需要重复代码或通过ID指定每个实例。由于客户的规范,在许多页面上都有许多编辑器实例 我在页面页脚中的代码是: $(document).ready(function() { CKEDITOR.instances["itis

我正在一个项目中使用CKEditor和jQuery验证插件

在过去的几天里,我在StackOverflow.com上读了一些非常有用的帖子,这些帖子确实帮助我获得了CKEditor的验证,谢谢

现在,我想将我编写的用于处理一个编辑器实例的代码推广到项目的其余部分,理想情况下,不需要重复代码或通过ID指定每个实例。由于客户的规范,在许多页面上都有许多编辑器实例

我在页面页脚中的代码是:

$(document).ready(function() {
 CKEDITOR.instances["itissue"].on("instanceReady", function() {
  // Set keyup event
  this.document.on("keyup", updateValue);

  // Set paste event
  this.document.on("paste", updateValue);
 });

 function updateValue() {
    CKEDITOR.instances.itissue.updateElement(); 
    $("#itissue").trigger('keyup');                   
 } 
});
itissue
是我的实例的ID,每个页面上的ID不同。我认为它需要被“所有文本区域”的某种类型的通用标识符所取代,但这正是我编程和谷歌搜索技能失效的地方


如果有人有任何想法,我希望能朝着正确的方向推进。

我会在提交处理程序中验证编辑器,而不是观察keyup并调用updateElement onkeyup

要回答您的问题,您需要遍历CKEDITOR.instances对象

// validator submit handler
var submitHandle = function(){
    for(var name in CKEDITOR.instances){
        CKEDITOR.instances[name].updateElement(); // update all instances of ckEditors
    }
    // proceed with validation check
};

这样,您就不需要知道编辑器实例的名称。

下面是我用来解决此问题的代码,我希望它对将来的用户有用

<script type="text/javascript">
$(document).ready(function() {
    for(var name in CKEDITOR.instances) {
        CKEDITOR.instances[name].on("instanceReady", function() {
            // Set keyup event          
            this.document.on("keyup", updateValue);
            // Set paste event
            this.document.on("paste", updateValue);     
        }); 

        function updateValue() {
            CKEDITOR.instances[name].updateElement(); 
            $('textarea').trigger('keyup');
        }
   }    
});
</script>

$(文档).ready(函数(){
for(CKEDITOR.instances中的变量名称){
CKEDITOR.instances[name].on(“InstanceRady”,函数(){
//设置密钥设置事件
本文件在(“keyup”,updateValue)上;
//设置粘贴事件
此.document.on(“粘贴”,updateValue);
}); 
函数updateValue(){
CKEDITOR.instances[name].updateElement();
$('textarea')。触发器('keyup');
}
}    
});

感谢您的帮助Josiah,我最终使用了您建议的for迭代和我自己的代码,因为我需要在更正字段时将错误消息消失。