jQuery验证addClassRules返回NaN而不是最大值

时间:2014-05-21 17:17:57

标签: javascript jquery validation coffeescript

我使用“age”类为我的元素制作了一个自定义验证规则(注意:我知道我可以使用name属性制作一个基本规则,但这不是我在这里寻找的。)

我的代码看起来像那样(CoffeeScript):

jQuery.validator.addClassRules
  age:
    required: true
    min: 10
    max: parseInt($('#max_age').data('max'), 10)

当我在Chrome控制台中尝试parseInt($('#max_age').data('max'), 10)时,它会返回正确的值,并进行完美解析。

但是,我的验证规则似乎不起作用......我在输入'.age'上收到错误“请输入小于或等于NaN的值”。

总而言之,验证规则适用于'required'和'min',但我似乎无法为我的'max'参数使用自定义值。

有没有人有任何想法?我检查了the jQuery validation documentation,但他们只在示例中使用数值。

非常感谢!

1 个答案:

答案 0 :(得分:1)

这应该有所帮助。

在你的验证中

更改

// clean number parameters
$.each(['minlength', 'maxlength', 'min', 'max'], function() {
    if (rules[this]) {
        rules[this] = Number(rules[this]);
    }
});

。通过

  // clean number parameters
    $.each(['minlength', 'maxlength'], function() {
        if (rules[this]) {
            rules[this] = Number(rules[this]);
        }
    });

否则使用最新版本升级您的验证js

来源:https://github.com/jzaefferer/jquery-validation/issues/455