Aktivieren von Brüchen / Cent / Dezimalstellen für die Zahleneingabe
Um Brüche (Cent) für eine HTML5-Zahleneingabe zuzulassen, müssen Sie das Attribut "step" für = "any" angeben:
<input type="number" min="1" step="any" />
Dies verhindert insbesondere, dass Chrome einen Fehler anzeigt, wenn eine Dezimal- / Bruchwährung in die Eingabe eingegeben wird. Mozilla, IE usw. ... treten keine Fehler auf, wenn Sie die Angabe vergessen step="any"
. Die W3C-Spezifikation besagt, dass step = "any" tatsächlich erforderlich sein sollte, um Dezimalstellen zu berücksichtigen. Sie sollten es also unbedingt verwenden. https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/number#step
Beachten Sie, dass Sie einen numerischen Schritt wie ".01" angeben müssen, wenn die Auf- / Ab-Schaltflächen eine bestimmte Granularität aufweisen sollen.
Außerdem wird die Zahleneingabe mittlerweile weitgehend unterstützt (> 90% der Benutzer).
Welche Eingabemöglichkeiten gibt es für Geld / Währung?
Der Titel der Frage hat sich inzwischen geändert und erhält eine etwas andere Bedeutung. Man könnte sowohl Zahlen- als auch Texteingaben verwenden, um Geld / Dezimalstellen zu akzeptieren.
Für ein Eingabefeld für Währung / Geld wird empfohlen, den Eingabetyp der Zahl zu verwenden und die entsprechenden Attribute wie oben beschrieben anzugeben. Ab 2020 gibt es keine W3C-Spezifikation für eine tatsächliche Eingabe von Währung oder Geld.
Der Hauptgrund dafür ist, dass die Benutzer automatisch gezwungen werden, ein gültiges Standardwährungsformat einzugeben, und dass alphanumerischer Text nicht zulässig ist. Wenn dies gesagt ist, können Sie sicherlich die reguläre Texteingabe verwenden und eine Nachbearbeitung durchführen, um nur den numerischen / dezimalen Wert abzurufen (dies sollte auch irgendwann serverseitig überprüft werden).
Das OP legte eine Anforderung an Währungssymbole und Kommas fest. Wenn Sie eine schickere Logik / Formatierung wie diese wünschen (ab 2020), müssen Sie eine benutzerdefinierte JS-Logik für eine Texteingabe erstellen oder ein Plugin suchen.
step
Attribut mit Dezimalstellen angeben . Siehe: Gibt es einen Float-Eingabetyp in HTML (5)?