【问题标题】:jquery validation for more than min valuejquery验证超过最小值
【发布时间】:2011-06-10 05:57:04
【问题描述】:

我正在使用jquery validation plugin 进行表单验证。使用 min 属性可以正常工作,但我希望它严格验证值大于该最小值。

rules: {
    price: {
        required: true,
        min: 13,
        number: true
    }
}

在我的代码中我有 min: 13,但我不想允许 13,只允许大于 13 的值,例如13.10、13.20、14。我该怎么做?

提前致谢!

【问题讨论】:

    标签: jquery jquery-validate


    【解决方案1】:

    使用$.validator.addMethod 创建您自己的自定义方法:

    $.validator.addMethod('minStrict', function (value, el, param) {
        return value > param;
    });
    

    然后使用:

    price: {
        required: true,
        minStrict: 13,
        number: true
    }
    

    注意:验证器插件recommend 的创建者将Number.MIN_VALUE 添加到您提供的值中:

    min: 13 + Number.MIN_VALUE
    

    Number.MIN_VALUE 是 JS 可以处理的最小正数(非零)浮点数,因此逻辑是下面两个语句是等价的:

    a > b;
    a >= b + Number.MIN_VALUE;
    

    但是,由于浮点数存储在内存中的方式,这不起作用。在大多数情况下,四舍五入会导致 b + Number.MIN_VALUE 等于 bb 必须非常小才能正常工作)。

    【讨论】:

    • 感谢您的快速解决方案
    • 如果有人像我一样需要在验证中添加消息,请参阅此答案stackoverflow.com/questions/13352626/…
    • 我在寻找 Number.MIN_VALUE... 我不想指定任何值,只是希望它是一个非零的正数。你摇滚!
    • 谢谢!效果很好!
    【解决方案2】:

    分钟:13.01,这个:

    rules:{ price:{ required: true, min: 13.01, number: true } }

    【讨论】:

    • 它有效。只需要更改验证消息。
    猜你喜欢
    • 1970-01-01
    • 2019-01-20
    • 2014-06-07
    • 2019-02-09
    • 2013-05-27
    • 1970-01-01
    • 2021-04-16
    • 2022-12-11
    • 2013-11-15
    相关资源
    最近更新 更多