Parsley.js 1.x - 表单数据属性动态更改时出错

cpo*_*pou 2 jquery parsley.js

键入字段时第一个keyup事件的My Parsley错误消息#myTestField

这个值太短了.它应该有4个字符或更多.

我试着动态改变Parsley字段数据属性,但似乎这不起作用.它将值保留在第一位(html表单),而不考虑JS代码中的修改后的值.

在Chrome上,我可以在加载DOM后检查数据属性值是否已更改.

我的代码是

<form name="myForm" id="myForm">
    <input type="text" name="myTestField" id="myTestField" data-trigger="keyup" data-minlength="4" data-validation-minlength="0" >
    <button id="mySubmitButton" type="submit" >Save</button>
</form>

<script>
// wait for the DOM to be loaded 
    $(document).ready(function() {
    // destroy
    $('#myForm').parsley('destroy');
    // change attribute
    $('#myTestField').attr('data-minlength','2');
    // assign parsley to do the job
    $('#myForm').parsley();
      });
</script>
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

更新:

这是Parsley.js的一个已知问题,在GitHub上有一个问题#52

我也尝试使用removeItem()后跟addItem()相同的输入#Id,但也没有用.

我还在试图找出一个解决方法

gui*_*ier 7

Parsley基于数据属性,由jQuery绑定 .data()

不幸的是,当你添加一个data-attr时,它没有绑定到jQuery .data().您必须动态添加验证器:

<script>
// wait for the DOM to be loaded 
    $(document).ready(function() {
      // destroy
      $('#myForm').parsley('destroy');
      // change attribute
      $('#myTestField').data('minlength', 2);
      // assign parsley to do the job
      $('#myForm').parsley();
    });
</script>
Run Code Online (Sandbox Code Playgroud)

我将添加一个API来动态添加/编辑/删除验证器,而不必调用destroy :)