J'utilise le Javascript suivant pour restreindre un champ de texte sur mon site Web afin qu'il n'accepte que les entrées numériques, et aucune autre lettre ou caractère. Le problème, c'est qu'il rejette VRAIMENT toutes les autres saisies, telles que ctrl - A pour sélectionner le texte, ou même toute autre fonction du navigateur comme ctrl - T ou ctrl - W lorsque la zone de texte est sélectionnée. Quelqu'un connaît-il un meilleur script pour n'autoriser que la saisie numérique, mais ne pas bloquer les commandes normales (qui ne sont pas saisies directement dans le champ) ? Merci Voici le code que j'utilise actuellement :
function numbersonly(e, decimal)
{
var key;
var keychar;
if (window.event)
key = window.event.keyCode;
else if (e)
key = e.which;
else
return true;
keychar = String.fromCharCode(key);
if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27))
return true;
else if ((("0123456789").indexOf(keychar) > -1))
return true;
else if (decimal && (keychar == "."))
return true;
else
return false;
}
Edit : Aucune des solutions proposées n'a résolu mon problème d'autoriser des commandes comme ctrl - A lorsque la zone de texte est sélectionnée. C'était le but de ma demande ici, donc je suis revenu à l'utilisation de mon script original. Mais bon.
3 votes
Si vous vous contentez d'utiliser le HTML 5, imparfaitement mis en œuvre, le type de formulaire
<input type="number" />
qui peuvent fonctionner.0 votes
J'aurais aimé pouvoir utiliser HTML 5. C'est ce que j'ai pensé en premier, et ça m'aurait évité de perdre du temps à chercher du javascript :-p Merci quand même.
0 votes
Duplicata possible de La saisie de texte HTML n'autorise que la saisie numérique