【问题标题】:How do I use jQuery validation plugin to validation a collection of strings?如何使用 jQuery 验证插件来验证字符串集合?
【发布时间】:2014-02-17 16:23:41
【问题描述】:

我有一个 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]”的输入字段,它们正确地传递到服务器端的列表中。

这是一个单一的字符串字段,我最近开始收集。如何修改我的 jQuery 验证插件插件以验证该字段的每个实例并显示适合每个字段的验证消息?

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

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

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

【问题讨论】:

    标签: javascript jquery validation spring-mvc


    【解决方案1】:

    对于最小尺寸验证,您无需创建新规则,只需使用 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();
    

    【讨论】:

    • 感谢 Renanlf 的回复。我实际上有一些规则,minlength 只是作为我正在使用的语法的一个示例。
    【解决方案2】:

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

    <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" 添加到我想要验证的输入字段中。

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

    【讨论】:

      猜你喜欢
      • 2012-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-04
      • 2015-07-08
      • 1970-01-01
      相关资源
      最近更新 更多