SubmitHandler jQuery Validate Submit Empty CkEditor

时间:2014-07-01 13:45:47

标签: javascript jquery forms jquery-validate ckeditor

您好我在提交之前使用jQuery Validation来验证我的表单。

我以这种方式拦截提交处理程序:

  <script type="text/javascript">
   <![CDATA[

        $(function() {
            $( "#_${sec_form}_id" ).validate({
                errorElement: "span",
                submitHandler: function(form) {
                    form.submit();
                }
            });

          $.validator.addMethod(
                "validator",
                function(value, element, regexp) {
                    if(value != null && value.trim()!=""){
                        var re = new RegExp(regexp);
                        return re.test(value);
                    }else{
                        return true;
                    }
                },
                "Inserire un valore coerente."
            );
        });
    ]]>
   </script>

在该表单中,我有一些 Ckeditor 字段,但是当我提交表单时,我会丢失对 ckeditor 字段的所有修改。

如果删除我的提交处理程序,则一切正常。

你对它有任何想法吗?

谢谢

1 个答案:

答案 0 :(得分:0)

您可以在提交之前将CKEditor字段的值复制到实际的textarea,以便忽略您的错误。

CKEDITOR.on('instanceReady', function () {
    $.each(CKEDITOR.instances, function (instance) {
        CKEDITOR.instances[instance].document.on("keyup", CK_jQ);
        CKEDITOR.instances[instance].document.on("paste", CK_jQ);
        CKEDITOR.instances[instance].document.on("keypress", CK_jQ);
        CKEDITOR.instances[instance].document.on("blur", CK_jQ);
        CKEDITOR.instances[instance].document.on("change", CK_jQ);
    });
});

function CK_jQ() {
    for (instance in CKEDITOR.instances) {
        CKEDITOR.instances[instance].updateElement();
    }
}

要尝试此操作,请检查此小提琴:http://jsfiddle.net/ryleyb/QcJ57/

有关详细信息,请查看以下问题:Jquery validation not working with ckeditor