Comment puis-je obtenir la valeur "réelle" d'un <input type="number">
champ?
J'ai une input
boîte et j'utilise un type d'entrée HTML5 plus récent number
:
<input id="edQuantity" type="number">
Ceci est principalement pris en charge dans Chrome 29:
Ce dont j'ai besoin maintenant, c'est la capacité de lire la valeur «brute» que l'utilisateur a entrée dans la zone de saisie. Si l'utilisateur a saisi un numéro:
puis edQuantity.value = 4
, et tout va bien.
Mais si l'utilisateur entre un texte invalide, je veux colorer la zone de saisie en rouge:
Malheureusement, pour une zone de type="number"
saisie, si la valeur de la zone de texte n'est pas un nombre, alors value
renvoie une chaîne vide:
edQuantity.value = "" (String);
(au moins dans Chrome 29)
Comment puis-je obtenir la valeur "brute" d'un <input type="number">
contrôle?
J'ai essayé de parcourir la liste des autres propriétés de la zone de saisie de Chrome:
je n'ai rien vu qui ressemble à l'entrée réelle.
Je ne pourrais pas non plus trouver un moyen de savoir si la boîte "est vide" ou non. J'aurais peut-être pu déduire:
value isEmpty Conclusion
============= ============= ================
"4" false valid number
"" true empty box; not a problem
"" false invalid text; color it red
Remarque : vous pouvez tout ignorer après la règle horizontale; c'est juste du remplissage pour justifier la question. Aussi: ne confondez pas l'exemple avec la question. Les gens pourraient vouloir la réponse à cette question pour des raisons autres que de colorer la boîte en rouge (un exemple: convertir le texte "four"
en "4"
symbole latin pendant l'événement onBlur)
Comment puis-je obtenir la valeur "brute" d'un <input type="number">
contrôle?
Lecture bonus
validity
état du champ - je m'attendrais typeMismatch
mais je ne me suis pas vérifié.
blah
est un numéro invalide".
number
n'est pas le type d'entrée que vous recherchez; utilisez unetext
entrée normale .