#myTestField
时第一个keyup事件的My Parsley错误消息是
此值太短。它应该有 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>
我做错了什么?
更新:
这是Parsley.js的已知问题,而且是Issue #52 on GitHub
我还尝试在同一输入#Id上使用removeItem()
后跟addItem()
,但也无效。
我仍在尝试找出解决方法
答案 0 :(得分: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>
我会添加一个API来动态添加/编辑/删除验证器,而不必调用destroy:)