Como posso obter o valor "real" de um <input type="number">campo?
Eu tenho uma inputcaixa e estou usando o tipo de entrada HTML5 mais recente number:
<input id="edQuantity" type="number">
Isso é principalmente compatível com o Chrome 29:

O que eu preciso agora é a capacidade de ler o valor "bruto" que o usuário inseriu na caixa de entrada. Se o usuário inseriu um número:

então edQuantity.value = 4, e tudo está bem.
Mas se o usuário inserir um texto inválido, quero colorir a caixa de entrada de vermelho:

Infelizmente, para uma type="number"caixa de entrada, se o valor na caixa de texto não for um número, valueretorna uma string vazia:
edQuantity.value = "" (String);
(no Chrome 29, pelo menos)
Como posso obter o valor "bruto" de um <input type="number">controle?
Tentei olhar a lista do Chrome de outras propriedades da caixa de entrada:

não vi nada que se pareça com a entrada real.
Nem consegui encontrar uma maneira de saber se a caixa "está vazia" ou não. Talvez eu pudesse ter inferido:
value isEmpty Conclusion
============= ============= ================
"4" false valid number
"" true empty box; not a problem
"" false invalid text; color it red
Nota : Você pode ignorar tudo após a régua horizontal; é apenas um preenchimento para justificar a pergunta. Além disso: não confunda o exemplo com a pergunta. As pessoas podem querer a resposta a esta pergunta por outras razões além de colorir a caixa de vermelho (um exemplo: converter o texto "four"no "4"símbolo latino durante o evento onBlur)
Como posso obter o valor "bruto" de um <input type="number">controle?
Leitura de bônus
validityestado do campo - seria de esperar, typeMismatchmas não verifiquei sozinho.
blahé um número inválido".
numbereste não é o tipo de entrada que você está procurando; use umatextentrada normal .