Partage
  • Partager sur Facebook
  • Partager sur Twitter

[JavaScript] vérifier si un champ est un nombre

Sujet résolu
7 février 2006 à 14:06:49

Bonjour, je souhaiterais faire un script en javascript pour vérifier si un champs est bien numérique:

je crois qu'il faut utiliser: isNaN(valeur)

Je veux que si un caractere autre que un chiffre ou une virgule soit tapé, ca n'inscrive rien dans mon input type="texte", sinon oui.

J'ai déjà bien cherché mais là jke seche donc si quelqu'un pourrait m'aider".

Je pense qu'il faut faire une fonction.

merci d'avance.

edit:

J'ai fait ceci:

onKeypress="if(event.keyCode < 45 || event.keyCode > 57) event.returnValue = false; if(event.which < 45 || event.which > 57) return false;"


mais le problème c'est que ca accepte les points et les slash alors que je veux que ca n'accepte que la virgule en plus de chiffres.
D'autre part, les chiffres tapés avec le keypad de droite sur le clavier ne sont pas acceptés...

Pouvez-vous faire quelque chose svp?
  • Partager sur Facebook
  • Partager sur Twitter
7 février 2006 à 17:28:00

Voila ce que je te propose : tu crées une fonction (ton code sera déjà plus propre !) qui transforme la valeur indiquée en nombre à virgule (du coup, si un autre caractère est inscrit, il est automatiquement effacé).

Voila ta fonction

function nombre(event)
    {
    var source = document.getElementById("texte"); //On récupère la balise
    var value = source.value; //ici, sa valeur
    if (isNaN(parseFloat(value))) //cas où la valeur n'est pas du tout un nombre
// Dans ce cas, parseFloat(value) est égal à NaN
        {
        source.value = ""; // la valeur devient nulle
        }
    else if (value != parseInt(value) + ".") // Cas ou ce n'est pas un nombre avec juste un point derrière (pour la virgule)
        {
        source.value = parseFloat(value); // La valeur devient la partie nombre
        }
    }

Et ta balise input ressemblera à ça
<input type="text" id="texte" onKeyUp="nombre()"/>

Il faut utiliser un point . pour la virule (tu peux essayer avec une fonction pour remplacer la virgule par un point).
Dis-moi ce que ça donne !
  • Partager sur Facebook
  • Partager sur Twitter
9 février 2006 à 17:20:25

ok merci pour merci beaucoups.

sujet clos :)
  • Partager sur Facebook
  • Partager sur Twitter