我花了几个小时试图让这个问题发挥作用,但我无法快速发展,所以我希望有人可以帮助我。我尝试过多次尝试,搜索了StackOverflow和Google。
我有一张textarea
的表单。我已经在表单上实现了parsley.js
。 parsley
验证工作正常,直到我将CKEditor
添加到textarea
。
我遇到的问题是parsley
错误消息在CKEditor
中提交没有值的表单时仍然存在(始终显示),即使我在{{1}中输入字符后也是如此}。
如何在将数据输入CKEditor
我认为原因是CKEditor
上没有onKeyUp
操作,因为textarea
操作现在正在onKeyUp
和{{1}上运行隐藏了,但是当我向CKEditor
输入数据时,无法删除欧芹必需的错误消息,这会让我感到害怕。
这是我的表格:
textarea
这是textarea代码:
CKEditor
任何帮助都会很棒。
答案 0 :(得分:0)
由于mightyspaj的评论而编辑:
CKEditor实际上并不在textarea元素的ontop上运行。元素被iframe替换以提供UI。这个问题听起来像textarea没有正确更新。
我建议您通过JavaScript访问textarea并手动触发其上的不同事件,以查看验证消息是否因这些触发器而发生更改。欧芹可能会把它所听到的事件记录在某处。
当您确定发现有问题的事件时,只需绕过自动化并自行启动即可。如果你需要实时刷新,例如1秒的setInterval来触发验证。
旧答案:
听起来您想要autoUpdateElement配置设置:http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-autoUpdateElement
CKE不直接在textarea上运行,它会创建一个iframe并执行其他一些魔术。因此,需要更新基础元素。您可以使用updateElement()
功能手动执行此操作,也可以尝试上面的autoUpdateElement
设置。
答案 1 :(得分:0)
我遇到了同样的问题。所以这是解决方案;)
HTML:
<textarea id="ckeditor" data-parsley-required="true" data-parsley-required-message="This field is required" rows="6"></textarea>
JS:
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();
});
});
});