Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.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 parsley.js-使用CKEditor时清除错误消息_Javascript_Jquery_Validation_Ckeditor_Parsley.js - Fatal编程技术网

Javascript parsley.js-使用CKEditor时清除错误消息

Javascript parsley.js-使用CKEditor时清除错误消息,javascript,jquery,validation,ckeditor,parsley.js,Javascript,Jquery,Validation,Ckeditor,Parsley.js,我已经花了好几个小时试图解决这个问题,但我进展不快,所以我希望有人能帮助我。我尝试了很多次,搜索了StackOverflow和Google 我有一个带有textarea的表单。我已经实现了一个表单。parsley验证工作正常,直到我将添加到textarea中 我遇到的问题是,当我在CKEditor中提交没有值的表单时,即使在CKEditor中输入字符后,parsley错误消息仍然存在(始终显示) 在将数据输入到CKEditor 我认为原因是textarea上没有onKeyUp操作,因为onKey

我已经花了好几个小时试图解决这个问题,但我进展不快,所以我希望有人能帮助我。我尝试了很多次,搜索了StackOverflow和Google

我有一个带有
textarea
的表单。我已经实现了一个表单。
parsley
验证工作正常,直到我将添加到
textarea

我遇到的问题是,当我在
CKEditor
中提交没有值的表单时,即使在
CKEditor
中输入字符后,
parsley
错误消息仍然存在(始终显示)

在将数据输入到
CKEditor

我认为原因是
textarea
上没有
onKeyUp
操作,因为
onKeyUp
操作现在在
CKEditor
上运行,
textarea
被隐藏,但是,当我将数据输入到
CKEditor
中时,无法删除parsley required错误消息,这让我很难受

这是我的表格:

<form id="details_form" class="form-horizontal" method="post" data-parsley-validate>

以下是文本区号:

<p>
    <textarea rows="10" data-parsley-required="true" data-parsley-maxlength="5000" data-parsley-required-message="This field is required." id="id_field" cols="40" name="field" data-parsley-id="8686" dir="ltr"></textarea>
    <span class="parsley-errors-list" id="parsley-id-8686"></span>
</p>


任何帮助都会很好。

根据mightyspaj的评论编辑:

CKEditor实际上并不在textarea元素的顶部操作。元素被iframe替换以提供UI。这个问题听起来像是textarea没有正确更新

我建议您通过JavaScript访问textarea并手动触发其上的不同事件,以查看验证消息是否因这些触发器而发生更改。欧芹可能在某处记录了它所听到的事件

当您确定发现有问题的事件时,只需绕过自动化并自己启动即可。如果需要实时刷新,请执行1秒设置间隔来触发验证


旧答案:

听起来您需要autoUpdateElement配置设置:


CKE不直接在textarea上操作,它创建了一个iframe并执行一些其他的魔法。因此,底层元素需要更新。您可以使用
updateElement()
函数手动执行此操作,也可以尝试上面的
autoUpdateElement
设置。

我也遇到了同样的问题。这就是解决方案;)

HTML:


你能用你的表单和javascript代码添加一个JSFIDLE吗?这是不正确的,如文档中所示,
默认为:true
。尽管如此,我仍然有这个问题
<textarea id="ckeditor" data-parsley-required="true" data-parsley-required-message="This field is required" rows="6"></textarea>
CKEDITOR.replace( 'ckeditor' );
CKEDITOR.config = {
  autoUpdateElement: true,
}

CKEDITOR.on('instanceReady', function(){
  $.each( CKEDITOR.instances, function(instance) {
    CKEDITOR.instances[instance].on("change", function(e) {
      for ( instance in CKEDITOR.instances )
        CKEDITOR.instances[instance].updateElement();
    });
  });
});