无法动态更改minLength

时间:2013-11-28 03:51:11

标签: javascript parsley.js

我有一个下拉列表,其中有国家/地区,在第二行有相同的格式我有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();
    }
}

但这似乎并没有帮助。你能帮我吗?

1 个答案:

答案 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。