1

我在文本区域上使用 ckeditor,我需要设置自定义验证。

按照示例,我以这种方式使用 jquery 适配器设置文本框:

$('#posteditor')
    .bootstrapValidator()
      .find('[name="text"]').ckeditor({
        skin: 'moono,/asset/css/moono/',
        language: 'it',
        toolbarGroups: [
          {"name":"basicstyles","groups":["basicstyles"]},
          {"name":"paragraph","groups":["list","align"]},
          {"name":"insert","groups":["insert"]},
          {"name":"styles","groups":["styles"]},
          {"name":"links","groups":["links"]},
        ],
        removeButtons: 'Strike,SpecialChar,Anchor',
        extraPlugins: 'youtube'
      }).editor.on('change', function() {
        $('#posteditor')
          .bootstrapValidator('updateStatus', 'text', 'NOT_VALIDATED')
          .bootstrapValidator('validateField', 'text');
      });

以这种方式在我的html中声明它

<form id="posteditor">
....
  <textarea class="form-control" name="text" id="text"></textarea>
....
</form>

当 onchange 事件被触发时,javascript 控制台显示消息

Uncaught TypeError: Cannot read property 'group' of undefined

并且该字段未经过验证。

谢谢你的帮助

4

2 回答 2

5

下面的效果很好,

$('#posteditor')
      .bootstrapValidator('updateStatus', $('#text'), 'NOT_VALIDATED')
      .bootstrapValidator('validateField', $('#text'));
  });

或者

 $('#posteditor').bootstrapValidator('revalidateField', $('#text'));
于 2015-02-28T05:07:46.280 回答
0

检查您是否不小心将 fv-* 或 bv-* 属性添加到 html 页面中而不是表单中的任何字段...

还要检查你的页面是否有多个同名的输入框..

因为,在验证验证器时,会选择页面中的所有字段,并仅处理初始化中具有字段名称的输入。

此外,您可以使用http://jsbeautifier.org/ 来消除您的 bootstrapValidator.min.js 并自行调试以检查您的问题

于 2016-11-08T12:40:53.627 回答