web-dev-qa-db-ja.com

最小値を超えるjquery検証

フォームの検証に jquery validation plugin を使用しています。 minプロパティの使用は問題なく機能しますが、その最小値よりも厳密に大きい値を検証する必要があります。

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

私のコードではmin: 13ですが、13は許可しません。13より大きい値のみを許可します。たとえば、 13.10、13.20、14。これを行うにはどうすればよいですか?

前もって感謝します !

19
Gowri

$.validator.addMethod を使用して独自のカスタムメソッドを作成します。

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

次に使用します:

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

注:バリデータプラグインの作成者 推奨 指定した値にNumber.MIN_VALUEを追加します。

min: 13 + Number.MIN_VALUE

Number.MIN_VALUE は、JSが処理できる正の(ゼロ以外の)最小の浮動小数点数であるため、以下の2つのステートメントは同等です。

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

しかし、これは、浮動小数点数がメモリに格納される方法が原因で機能しません。丸めにより、ほとんどの場合b + Number.MIN_VALUEbに等しくなります(これが機能するには、b非常に小さいである必要があります)。

45
David Tang