web-dev-qa-db-fra.com

validation jquery pour une valeur supérieure à min

J'utilise plugin de validation jquery pour la validation du formulaire. L'utilisation de la propriété min fonctionne très bien, mais je veux qu'elle valide les valeurs strictement supérieures à cette valeur min.

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

Dans mon code, j'ai min: 13, mais je ne veux pas autoriser 13, uniquement des valeurs supérieures à 13, par exemple 13.10, 13.20, 14. Comment puis-je faire cela?

Merci d'avance !

19
Gowri

Créez votre propre méthode personnalisée avec $.validator.addMethod :

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

Utilisez ensuite:

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

Remarque: Les créateurs du plugin validateur recommander ajouter Number.MIN_VALUE à la valeur que vous fournissez:

min: 13 + Number.MIN_VALUE

Number.MIN_VALUE est le plus petit flottant positif (non nul) que JS puisse gérer, d'où la logique que les deux instructions ci-dessous sont équivalentes:

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

Mais , cela ne fonctionne pas, en raison de la façon dont les nombres à virgule flottante sont stockés en mémoire. L'arrondi entraînera b + Number.MIN_VALUE égal à b dans la plupart des cas (b doit être très petit pour que cela fonctionne).

45
David Tang