【问题标题】:jQuery Validation plugin custom method. Multiple parametersjQuery Validation 插件自定义方法。多个参数
【发布时间】:2013-02-19 22:09:53
【问题描述】:

我正在尝试使用带有 jQ​​uery 验证插件的自定义验证器。 但是,我不确定您应该如何将多个参数传递给验证方法? 我尝试过使用 (2,3)、花括号和组合,但失败了。

这是代码 - ????标记我需要信息的区域:

$(document).ready(function() {
        jQuery.validator.addMethod("math", function(value, element, params) {
            return this.optional(element) || value == params[0] + params[1];
        }, jQuery.format("Please enter the correct value for {0} + {1}"));

        $("#form_register").validate({
            debug: true,
            rules: {
                inputEl: { required: true, math: ???? }
            },
            messages: {
                inputEl: { required: "Required", math: "Incorrect result" }
            }
        });
});

【问题讨论】:

    标签: jquery jquery-validate


    【解决方案1】:

    Javascript 数组:

    [value1,value2,value3]
    

    所以你的代码可能是:

    inputEl: { required: true, math: [2, 3 ,4 , 5] }
    

    【讨论】:

      【解决方案2】:

      您还可以将普通的 JavaScript 对象作为参数传递,我个人认为使用它更容易:

      jQuery.validator.addMethod("myRule", function (value, element, options) {
          return value === options.data;
      }, "My Rule says no!");
      
      $("#input").rules("add", { myRule: { data: "foo" } });
      

      【讨论】:

      • 这样做的一个缺点是您不能使用参数化错误消息。此插件自动使用给定值或参数格式化错误消息,因此您可以收到错误消息“请选择超过 {0} 个项目”,它会自动将“{0}”替换为输入值(第一个参数)。因此,如果参数是一个对象,它将不起作用。并且拥有多个参数,您可以获得更多用户友好的错误消息,例如在范围情况下,其中 params[0] 可能是较低的范围值和 params[1] 的较高范围值。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-23
      • 1970-01-01
      • 1970-01-01
      • 2016-10-22
      • 1970-01-01
      相关资源
      最近更新 更多