jQuery 验证 - 具有十进制值的 max 方法

jQuery Validation - max method with decimal values

使用 the library 的 1.11.1 版 我注意到如果我使用

<input data-rule-max="8" />

当我输入值 10 时,它会正确地使验证失败。

但是,如果我有类似

<input data-rule-max="8.00" />

我输入 10 它不会使该字段无效。但是,如果我输入 9,它会将其标记为无效。

调试时,我可以看到最大规则正在接收要处理的字符串值:"10" 小于 "8.00"

我需要能够针对 8 和 8.75 之类的东西进行验证。是否有技巧可以使最大规则与非整数一起玩得很好,或者我应该使用其他规则?

(顺便说一句,我可能会在某个时候更新到最新版本的库,所以这个问题只是关于在我可以进行更改之前该怎么做。)

Is there a trick to get the max rule to play nice with non-integers,

max 规则本身工作正常...您在使用 data-rule-max 属性声明 max 时谈论的是一个问题。在这种情况下,updating the plugin 是您唯一的解决方案。

or another rule I should be using?

max规则就是max规则。

如果您无法更新插件,那么只需使用 HTML 5 max 属性而不是 data-rule-max 来声明 max 规则。

<input type="text" name="foo" max="8.00" />

演示 (v1.11.1): http://jsfiddle.net/fguxextv/


这是插件如何将属性映射到可用方法的问题。如果映射在插件中没有固定,您可以简单地通过 .validate() 方法声明规则。在这种情况下,它是 "max".

 $('#myform').validate({
    rules: {
        foo: {
            required: true,
            max: 8.00
        }, 
        ....

演示 2 (v1.11.1):http://jsfiddle.net/fguxextv/3/