¿Cómo puedo obtener el valor "real" de un <input type="number">
campo?
Tengo una input
caja y estoy usando un tipo de entrada HTML5 más nuevo number
:
<input id="edQuantity" type="number">
Esto es principalmente compatible con Chrome 29:
Lo que ahora necesito es la capacidad de leer el valor "sin procesar" que el usuario ingresó en el cuadro de entrada. Si el usuario ha introducido un número:
entonces edQuantity.value = 4
, y todo va bien.
Pero si el usuario ingresa texto no válido, quiero colorear el cuadro de entrada de rojo:
Desafortunadamente, para un type="number"
cuadro de entrada, si el valor en el cuadro de texto no es un número, entonces value
devuelve una cadena vacía:
edQuantity.value = "" (String);
(en Chrome 29 al menos)
¿Cómo puedo obtener el valor "bruto" de un <input type="number">
control?
Intenté buscar en la lista de Chrome de otras propiedades del cuadro de entrada:
No vi nada que se parezca a la entrada real.
Tampoco pude encontrar una manera de saber si la casilla "está vacía" o no. Tal vez podría haber inferido:
value isEmpty Conclusion
============= ============= ================
"4" false valid number
"" true empty box; not a problem
"" false invalid text; color it red
Nota : puede ignorar todo después de la regla horizontal; es solo un relleno para justificar la pregunta. Además: no confunda el ejemplo con la pregunta. La gente puede querer la respuesta a esta pregunta por otras razones además de colorear el cuadro de rojo (Un ejemplo: convertir el texto "four"
en el "4"
símbolo latino durante el evento onBlur)
¿Cómo puedo obtener el valor "bruto" de un <input type="number">
control?
Lectura adicional
validity
estado del campo ; lo esperaría, typeMismatch
pero no lo he verificado.
blah
es un número inválido".
number
no es el tipo de entrada que está buscando; utilice unatext
entrada normal .