Javascript parsley.js-使用CKEditor时清除错误消息
我已经花了好几个小时试图解决这个问题,但我进展不快,所以我希望有人能帮助我。我尝试了很多次,搜索了StackOverflow和Google 我有一个带有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
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();
});
});
});