我有一个下拉列表,其中有国家/地区,在第二行有相同的格式我有ZipCode texbox。我想动态限制zipcode字段的minLenght。例如,如果选择US,则zipcode不应小于5,对于其他国家/地区,其他一些minLength限制。我的表单使用欧芹验证器
我在下面写了函数onChange我的国家/地区下拉列表
function setZipLimit() {
alert("in Zip limit" + document.getElementById("billingCountry").value);
if (document.getElementById("billingCountry").value == "US") {
alert("I am in US");
$('#billingForm').parsley('destroy');
$('#billingPostalCode').data('minlength', 3);
$('#billingForm').parsley();
} else {
$('#billingForm').parsley('destroy');
$('#billingPostalCode').data('minlength', 10);
$('#billingForm').parsley();
}
}
但这似乎并没有帮助。你能帮我吗?
答案 0 :(得分:0)
你不能只编辑属性,因为parsley.js最初读取表单并获取其值。改变他们之后不应该有任何影响。
但是,您可以使用Parsley.js API进行Javascript函数来编辑约束。你已经用它们来摧毁和建造欧芹。欧芹得到以下功能: $('#field')。parsley('updateConstraint',{minlength:6});
在文档中还有一些addConstraint和removeConstraint: http://parsleyjs.org/documentation.html
如果您的表格变得更复杂并且您有几个动态案例,我建议您只销毁和重建您表单的特定部分。原因是(从我最近的一个问题): 如果你销毁Parsley,更改一些Fields,然后再次销毁它,因为另一个if发生,你之前的更改被抛弃,因为Build只读取Destroy和Build之间的js并读取Form。