number
Typu ma step
wartość sterowania, który numery są ważne (wraz z max
a min
), która domyślnie 1
. Ta wartość jest również wykorzystywana przez implementacje przycisków krokowych (tj. Naciśnięcie zwiększa o step
).
Po prostu zmień tę wartość na odpowiednią. W przypadku pieniędzy prawdopodobnie należy spodziewać się dwóch miejsc po przecinku:
<input type="number" step="0.01">
(Ustawiłbym również, min=0
jeśli może być tylko dodatni)
Jeśli wolisz zezwolić na dowolną liczbę miejsc po przecinku, możesz użyć step="any"
(choć w przypadku walut zalecamy trzymanie się 0.01
). W Chrome i Firefox przyciski krokowe zwiększają / zmniejszają się o 1 podczas używania any
. (dzięki odpowiedzi Michała Stefana za wskazanie any
i zobacz odpowiednią specyfikację tutaj )
Oto plac zabaw pokazujący, jak różne kroki wpływają na różne typy danych wejściowych:
<form>
<input type=number step=1 /> Step 1 (default)<br />
<input type=number step=0.01 /> Step 0.01<br />
<input type=number step=any /> Step any<br />
<input type=range step=20 /> Step 20<br />
<input type=datetime-local step=60 /> Step 60 (default)<br />
<input type=datetime-local step=1 /> Step 1<br />
<input type=datetime-local step=any /> Step any<br />
<input type=datetime-local step=0.001 /> Step 0.001<br />
<input type=datetime-local step=3600 /> Step 3600 (1 hour)<br />
<input type=datetime-local step=86400 /> Step 86400 (1 day)<br />
<input type=datetime-local step=70 /> Step 70 (1 min, 10 sec)<br />
</form>
Jak zwykle dodam szybką notatkę: pamiętaj, że sprawdzanie poprawności po stronie klienta to tylko wygoda dla użytkownika. Musisz także sprawdzić poprawność po stronie serwera!
Przez: http://blog.isotoma.com/2012/03/html5-input-typenumber-and-decimalsfloats-in-chrome/
Działa dla mnie w Chrome, nie testowany w innych przeglądarkach.
źródło
Możesz użyć:
źródło
Możesz użyć atrybutu step do numeru typu wejścia:
step="any"
pozwoli na dowolny ułamek dziesiętny.step="1"
nie pozwoli na zapis dziesiętny.step="0.5"
pozwoli 0,5; 1; 1,5; ...step="0.1"
pozwoli 0,1; 0,2; 0,3; 0,4; ...źródło
Na podstawie tej odpowiedzi
Znaczenie:
Kod Char:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Backspace
(w przeciwnym razie potrzebujesz odświeżenia strony w Firefox)dot
&&
jestAND
,||
jestOR
operatorem.jeśli spróbujesz float z przecinkiem:
Obsługiwane Chromium i Firefox (Linux X64) (inne przeglądarki nie istnieją).
źródło
tak robię
następnie określam min w 0,4 i maks w 0,7 z krokiem 0,01: 0,4, 0,41, 0,42 ... 0,7
źródło
Właśnie miałem ten sam problem i mogłem go naprawić, wstawiając przecinek, a nie kropkę / kropkę w numerze z powodu francuskiej lokalizacji .
Więc działa z:
2 jest OK
2,5 jest OK
2.5 to KO (liczba ta jest uważana za „nielegalną” i otrzymasz pustą wartość).
źródło