Comment puis-je obtenir la valeur "réelle" d'un <input type="number">champ?
J'ai une inputboî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 valuerenvoie 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 typeMismatchmais je ne me suis pas vérifié.
blahest un numéro invalide".
numbern'est pas le type d'entrée que vous recherchez; utilisez unetextentrée normale .