Wie kann ich den "echten" Wert eines <input type="number">Feldes ermitteln?
Ich habe eine inputBox und verwende einen neueren HTML5-Eingabetyp number:
<input id="edQuantity" type="number">
Dies wird hauptsächlich in Chrome 29 unterstützt:

Was ich jetzt brauche, ist die Fähigkeit, den "rohen" Wert zu lesen, den der Benutzer in das Eingabefeld eingegeben hat. Wenn der Benutzer eine Nummer eingegeben hat:

dann edQuantity.value = 4und alles ist gut.
Aber wenn der Benutzer ungültigen Text eingibt, möchte ich das Eingabefeld rot färben:

type="number"Wenn für ein Eingabefeld der Wert im Textfeld keine Zahl ist, wird leider valueeine leere Zeichenfolge zurückgegeben:
edQuantity.value = "" (String);
(mindestens in Chrome 29)
Wie kann ich den "rohen" Wert eines <input type="number">Steuerelements ermitteln?
Ich habe versucht, die Liste der anderen Eigenschaften des Eingabefelds in Chrome zu durchsuchen:

Ich habe nichts gesehen, was der tatsächlichen Eingabe ähnelt.
Ich konnte auch nicht feststellen, ob die Box "leer" ist oder nicht. Vielleicht hätte ich folgern können:
value isEmpty Conclusion
============= ============= ================
"4" false valid number
"" true empty box; not a problem
"" false invalid text; color it red
Hinweis : Sie können alles nach der horizontalen Regel ignorieren. Es ist nur Füllstoff, um die Frage zu rechtfertigen. Außerdem: Verwechseln Sie das Beispiel nicht mit der Frage. Die Antwort auf diese Frage kann aus anderen Gründen als der roten Färbung des Kästchens gewünscht werden (Ein Beispiel: Konvertieren des Textes "four"in das lateinische "4"Symbol während des onBlur-Ereignisses)
Wie kann ich den "rohen" Wert eines <input type="number">Steuerelements ermitteln?
Bonuslesung
validityStatus des Feldes - ich würde erwarten, typeMismatchaber ich habe mich nicht überprüft.
blahist eine ungültige Nummer".
numberist dies nicht der Eingabetyp, den Sie suchen. Verwenden Sie einen normalentextEingang.