Wie kann ich den "echten" Wert eines <input type="number">
Feldes ermitteln?
Ich habe eine input
Box 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 = 4
und 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 value
eine 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
validity
Status des Feldes - ich würde erwarten, typeMismatch
aber ich habe mich nicht überprüft.
blah
ist eine ungültige Nummer".
number
ist dies nicht der Eingabetyp, den Sie suchen. Verwenden Sie einen normalentext
Eingang.