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

时间:2014-08-20 09:38:17

标签: javascript jquery validation ckeditor parsley.js

我花了几个小时试图让这个问题发挥作用,但我无法快速发展,所以我希望有人可以帮助我。我尝试过多次尝试,搜索了StackOverflow和Google。

我有一张textarea的表单。我已经在表单上实现了parsley.jsparsley验证工作正常,直到我将CKEditor添加到textarea

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

如何在将数据输入CKEditor

时清除欧芹错误消息

我认为原因是CKEditor上没有onKeyUp操作,因为textarea操作现在正在onKeyUp和{{1}上运行隐藏了,但是当我向CKEditor输入数据时,无法删除欧芹必需的错误消息,这会让我感到害怕。

这是我的表格:

textarea

这是textarea代码:

CKEditor

任何帮助都会很棒。

2 个答案:

答案 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();
    });
  });
});