Comment forcer la saisi d'entier avec JavaScript

Fermé
max-jacob Messages postés 28 Date d'inscription jeudi 19 octobre 2017 Statut Membre Dernière intervention 23 mai 2020 - 14 oct. 2018 à 15:17
 jacobmax - 16 oct. 2018 à 14:38
Bonjour à tous,

j'ai un formulaire auquel j'aimerais que l'utilisateur ne puisse saisir qu'un entier positif <=1.000.000

- Si l'utilisateur saisir une espace(" "), une virgule(,), un point(.), une valeur négative(-1), le formulaire doit réagir:

"Vous ne pouvez saisir qu'un entier positif inférieur ou égale à 1 Million"

J'ai essayé en vain avec HTML avec l'input type="number" qui autorise également les valeur négatif et qu'on ne peut pas restreindre les nombres à 7 caractère, c'est pourquoi je passe en Javacript

J'ai essayé ceci mais c'est trop complexe, je suis nouveau en JavaScript:


var nombre = document.getElementById("nombre");

function ValidateNombre(nombre)
{

var money = /^[0-9][0-9]*/;

if (nombre.value <= 1000000 && nombre.value == String)
{

alert("Vous ne devriez saisir que des valeurs décimaux inférieur ou égal à 1.000.000");

return false;

}

else
{

return true;

}

}

Votre aide sera très apprécié!

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
14 oct. 2018 à 19:17
Bonjour,

Tu peux faire ceci en HTML uniquement.

<input type="text" name="money" pattern="\d{1,6}|1000000" title="Nombre entier entre 0 et 1000000">

Remarque : dans ton message d'erreur tu parles de "décimaux", c'est contradictoire avec des entiers.
0
Merci de votre aide et de la remarque.
Cependant comment modifier le pattern a n'autoriser que des valeurs compris entre 500 et 1000000?
Car ne pas definir une valeur minimum autoriserais egalement la saisi des valeurs comme ''0'', ''1'',... C'est j'aimerais que le minimum soit 500.

Enfin, pouvez-vous me donner le lien vers une documentation expliquant de manière claire les patterns? Afin de mieux la comprendre et l'editer a ma convenance. Encore merci, c'etait deja la reponse a mon soucis
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015 > jacob-max
14 oct. 2018 à 22:01
Voici une documentation de référence sur les expressions régulières :
https://developer.mozilla.org/fr/docs/Web/JavaScript/Guide/Expressions_régulières
0
Il y a ça aussi côté interface HTML5:
 <input id="input_valeur" type="number" name="quantity" min="500" max="1000000">

et ensuite vérifier dans le script:
let moninput=document.getElementById('input_valeur'),
 val = moninput.value;
if(val<500 || val>1000000 || isNaN(val) ){
 alert(' vous devez entrer un nombre entre 500 et 1000000 ');
}
0
C'est Super!
Merci beaucoup!
0