Ck包全名:CK编辑器第二次验证(ck time)

我有两个 CKEditors 在我的 HTML(我的意思是说多个 ckeditors)。

另外我使用验证插件检查如果 CKEditor 是空的,如果空显示错误。

验证工作完美,但它验证第二次,而它应该验证第一次本身。

我已经检查了所有的问题和答案在这里,但没有帮助。

我创建了一个JS Fiddle

用于验证的代码:

HTML格式

<form action="" method="post" id="frmEditor">
    <p>
        <label for="editor1">
            Editor 1:
        </label>
        <textarea cl="ckeditor" cols="80" id="editor1" name="editor1" rows="10"></textarea>
    </p>
    <p>
    </p>
    <p>
        <label for="editor1">
            Editor 2:
        </label>
        <textarea cl="ckeditor" cols="80" id="editor2" name="editor2" rows="10"></textarea>
    </p>
    <p>
        <input type="submit" value="Submit">
    </p>
</form>

剧本

$(document).ready(function(){   
// validate signup form on keyup and submit
    $("#frmEditor").validate({
        ignore: [],
        debug: false,
        rules: {
            editor1:{
                required: true
            },
            editor2:{
                required: true
            }           
        },
        messages: {         
            editor1: {
                required: "Please enter"
            },
            editor2: {
                required: "Please enter"
            }           
        },
        submitHandler: function(form) {
            form.submit();
        }       
    });
});
3

您需要在验证执行之前更新实例。所以首先在按钮上添加一个id属性或类

<input type="submit" value="Submit" id="submitFormBtn">

现在在你的 js 代码下面写函数

$('#submitFormBtn').click(function () {
    CKEDITOR.instances.editor1.updateElement();
    CKEDITOR.instances.editor2.updateElement();
});

希望这将工作。

1
jQuery.validator.setDefaults({
    ignore: [],
    // with this no hidden fields will be ignored E.g. ckEditor text-area
});

我观察到验证工作在第二次提交。原因是,ckEditor隐藏实际的文本区域并将 iframe 作为编辑器实例,并在提交时将内容推送到文本区域。这意味着,TextArea上的验证在陈旧数据上被触发。为了解决这个问题,我正在更新编辑器实例的文本更改上的TextArea

    for (instance in CKEDITOR.instances) {
        CKEDITOR.instances[instance].on('change', function ()
        {
            var editorName = $(this)[0].name;
            CKEDITOR.instances[editorName].updateElement();
        });
    }
0

我试过以下解决方案,它的工作。

        <textarea name="txtDesc<?php echo $i;?>" id="txtDesc<?php echo $i;?>" cl="ckeditor" rows="5" cols="17" ><?php echo $txtDesc?></textarea>
        <script>
         CKEDITOR.replace("txtDesc<?php echo $i;?>");
         CKEDITOR.add       
            //CKEDITOR.replace('txtDesc0'); 
        </script>   

如果只有 1 个 ckEditor

for (instance in CKEDITOR.instances) {
    CKEDITOR.instances[instance].on("instanceReady", function () {
        //set keyup event
        this.document.on("keyup", function () { CKEDITOR.instances[instance].updateElement(); });
        //and paste event
        this.document.on("paste", function () { CKEDITOR.instances[instance].updateElement(); });
    });
}                                   

如果有超过 1 ckEditor(在我的情况下 2)

CKEDITOR.instances["txtDesc0"].on("instanceReady", function () {
this.document.on("keyup", function () { CKEDITOR.instances["txtDesc0"].updateElement(); });
this.document.on("paste", function () { CKEDITOR.instances["txtDesc0"].updateElement(); });
this.document.on("cut", function () { CKEDITOR.instances["txtDesc0"].updateElement(); });
});
CKEDITOR.instances["txtDesc1"].on("instanceReady", function () {
this.document.on("keyup", function () { CKEDITOR.instances["txtDesc1"].updateElement(); });
this.document.on("paste", function () { CKEDITOR.instances["txtDesc1"].updateElement(); });
this.document.on("cut", function () { CKEDITOR.instances["txtDesc1"].updateElement(); });
});             

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(116)
Drake dog 9:DrakeC++ 教程
上一篇
叶罗丽cp:命令“cp-P”和“cp-d”之间有区别吗
下一篇

相关推荐

  • Cosx是什么函数:通过对一系列求和来计算 cos(x)(cosx times cosx)

    关于Cosx是什么函数的问题,在cosx times cosx中经常遇到,我在计算机编程方面很新,最近刚开始学习 python。在这个作业中,我需要通过求和系列 1-x ^ 2 / 2!+ x ^ 4 / 4!-x ^ 6 / 6!来计算 cos(x)。。。…

    2022-11-23 08:46:18
    0 54 74
  • android 视频编码深入理解MediaCodec API

    Android 视频编码是指将原始视频数据经过压缩编码后,生成新的视频数据,以便减少视频文件的体积,提高传输速度,以及更好地在 Android 设备上播放。…

    2023-01-13 10:58:18
    0 52 89
  • cv小敢:如何利用CV小敢提升职业技能?

    cv小敢(Computer Vision Tiny-YOLO)是一种轻量级的物体检测算法,它可以在资源受限的设备上运行,如嵌入式设备、智能手机等。它是基于YOLO(You Only Look Once)算法的一个变体,由Joseph Redmon和Ali Farhadi开发,旨在提高深度学习模型的性能,同时减少模型的大小和计算复杂度。…

    2023-02-09 13:08:59
    0 20 86
  • coremail论客邮箱Coremail论客邮箱

    Coremail论客邮箱是一款专业的企业邮箱服务,可以满足企业对安全、可靠性和高效性的要求。它拥有强大的安全性能,可以提供多种安全保护,包括防止邮件被窃取、拦截恶意邮件、防止跨站脚本攻击等。此外,它还支持多种企业级功能,如组织架构管理、收发邮件管理、文件共享管理、联系人管理等,可以帮助企业提高工作效率,提升企业形象。…

    2023-02-25 04:36:55
    0 73 52
  • linux 编译静态库:```ar cr libtest.a *.o```4. 完成!

    我们要创建一个源文件,比如:mylib.c,内容如下:#include…

    2023-03-19 08:46:39
    0 88 40
  • canvas下载安装:Unleash the Power of Canvas to Create Amazing Visuals

    Canvas是一种HTML5技术,可以在网页上创建和绘制2D图形。它是一个JavaScript API,可以使用JavaScript代码来绘制图形,并且可以添加各种效果,如阴影,渐变,动画等。…

    2023-03-08 00:48:14
    0 82 59
  • class定位:The Benefits of Using Class Selectors for Element Locati

    示例示例class定位是一种CSS布局技术,用于指定HTML元素的位置,可以使元素放置在页面的任何位置。代码示例:…

    2023-03-06 07:16:44
    0 46 92
  • cvt加速技巧:如何使用CVT加速技巧提升网络性能?

    cvt加速技巧是一种用于提升计算机程序运行性能的技术。它可以帮助程序员更有效地利用处理器的资源,从而提高程序的性能。cvt加速技巧的主要原理是:在程序运行时,将处理器的资源(如内存、寄存器、流水线等)分解成小块,然后将这些小块重新组合,使其可以更有效地执行程序代码。…

    2023-01-21 04:33:16
    0 84 15

发表评论

登录 后才能评论

评论列表(59条)