Περισσότερα
Υπάρχει τύπος εισόδου float στην HTML5;
Σύμφωνα με το html5.org, το χαρακτηριστικό "value attribute του τύπου εισόδου "number"s, αν έχει καθοριστεί και δεν είναι κενό, πρέπει να έχει τιμή που να είναι έγκυρος αριθμός κινητής υποδιαστολής.",
Ωστόσο, πρόκειται απλώς (στην τελευταία έκδοση του Chrome, τουλάχιστον), για ένα "updown" στοιχείο ελέγχου με ακέραιους αριθμούς, όχι κινητές μονάδες:
737
3
Ο τύπος
number
έχει μια τιμήstep
που ελέγχει ποιοι αριθμοί είναι έγκυροι (μαζί με τουςmax
καιmin
), η οποία είναι προεπιλεγμένη στο1
. Αυτή η τιμή χρησιμοποιείται επίσης από τις υλοποιήσεις για τα βηματικά κουμπιά (π.χ. το πάτημα προς τα πάνω αυξάνει κατάβήμα
).Απλά αλλάξτε αυτή την τιμή σε όποια είναι κατάλληλη. Για χρήματα, αναμένονται πιθανώς δύο δεκαδικά ψηφία:
(Θα έβαζα επίσης
min=0
αν μπορεί να είναι μόνο θετικό)Αν προτιμάτε να επιτρέψετε οποιονδήποτε αριθμό δεκαδικών ψηφίων, μπορείτε να χρησιμοποιήσετε
step="any"
(αν και για τα νομίσματα, θα συνιστούσα να μείνετε στο0.01
). Στο Chrome & Firefox, τα κουμπιά βηματισμού θα αυξάνονται/μειώνονται κατά 1 όταν χρησιμοποιείτε τοany
. (ευχαριστώ την απάντηση του Michal Stefanow'για την επισήμανση τουany
, και [δείτε το σχετικό spec εδώ][1])Εδώ'είναι μια παιδική χαρά που δείχνει πώς διάφορα βήματα επηρεάζουν διάφορους τύπους εισόδου:
Μέσω: http://blog.isotoma.com/2012/03/html5-input-typenumber-and-decimalsfloats-in-chrome/
Αλλά τι γίνεται αν θέλετε όλοι οι αριθμοί να είναι έγκυροι, ακέραιοι και δεκαδικοί; Σε αυτή την περίπτωση, ορίστε το βήμα σε "any"
Λειτουργεί για μένα στο Chrome, δεν έχει δοκιμαστεί σε άλλα προγράμματα περιήγησης.
Μόλις είχα το ίδιο πρόβλημα, και μπορούσα να το διορθώσω βάζοντας απλώς ένα κόμμα και όχι μια περίοδο/τελεία στον αριθμό λόγω της γαλλικής τοπικοποίησης.
Οπότε λειτουργεί με:
<input type="number" value="" />,
Το 2 είναι εντάξει
2,5 είναι OK
2,5 είναι KO (Ο αριθμός θεωρείται "παράνομος" και λαμβάνετε κενή τιμή).