如何使用jQuery验证插件验证字符串集合?

时间:2014-02-17 16:23:42

标签: javascript jquery validation spring-mvc

我有一个Java(Spring MVC)bean,它有一个字符串集合作为bean属性。我可以在Freemarker中呈现这样的内容:

[#list listOfStrings as aString]
    <input name="${fieldName}[${aString_index}]" type="text" value="${(currentValue!'')?html}" maxlength="50"/>
[/#list]

这给了我一系列名为“aString [n]”的输入字段,它们正确地传递到服务器端的List中。

这是一个单独的String字段,我最近搬到了一个集合。如何修改我的jQuery验证插件插件以验证该字段的每个实例并显示适合每个字段的验证消息?

使用如下语法的当前验证内容:

$('#myform').validate({
    rules: {
         aString: {
             minlength: 16
         }
    },
    messages: {
         aString: {
             minLength: "failed validation"
         }
    }
});

我需要能够引用字符串集合(aString [0],aString [1] ....等)并呈现消息,以便用户知道哪些实例出错。

2 个答案:

答案 0 :(得分:0)

对于最小尺寸验证,您不需要创建新规则,只需使用minlength ='16'标记字段并确保它们具有ID和NAME,并且它们具有以下标签:

[#list listOfStrings as aString]
    <label for="${fieldName}_${aString_index}">String: </label>
    <input name="${fieldName}_${aString_index}" name="${fieldName}_${aString_index}" type="text" value="${(currentValue!'')?html}" maxlength="50" minlength="16"/>
[/#list]

然后,你打电话:

$("#myform").validate();

答案 1 :(得分:0)

我最终定义了自定义方法并使用类来应用它们。这意味着我必须添加一个

<label for="xyz" class="error" />

元素在HTML中的适当位置。

        $.validator.addMethod("codeRequired", $.validator.methods.required,"Please enter a code");
    $.validator.addMethod("codeMinLength", $.validator.methods.minlength, $.format("The code appears to be too short, Please enter a valid {0} digit code."));
    $.validator.addClassRules("code", { codeRequired: true, codeMinLength: 16 });

然后我将class =“code”添加到我要验证的输入字段中。

这似乎有效,如果我发现此解决方案存在问题,我会稍后更新。