Menurut html5.org, "nomor" input type's "nilai atribut, jika ditentukan dan tidak kosong, harus memiliki nilai yang lebih valid floating point nomor."
Namun itu hanya (di versi terbaru Chrome, anyway), sebuah "updown" kontrol dengan bilangan bulat, tidak mengapung:
<input type="number" id="totalAmt"></input>
Apakah ada floating point elemen input asli HTML5, atau cara untuk membuat jumlah input jenis pekerjaan dengan mengapung, tidak int? Atau aku harus resor untuk plugin jQuery UI?
Jumlah
yang telah langkah
nilai yang mengendalikan angka-angka yang valid (bersama dengan max
dan min
), default 1
. Nilai ini juga digunakan oleh implementasi untuk stepper tombol (yaitu menekan meningkat dengan langkah
).
Hanya mengubah nilai ini untuk apa pun yang sesuai. Untuk uang, dua tempat desimal adalah mungkin diharapkan:
<input type="number" step="0.01">
(Saya'd juga mengatur min=0
jika itu hanya dapat menjadi positif)
Jika anda'd sukai untuk memungkinkan setiap jumlah tempat desimal, anda dapat menggunakan langkah="salah"
(meskipun untuk mata uang, aku'd merekomendasikan menempel 0.01
). Di Chrome & Firefox, stepper tombol akan penambahan / pengurangan dengan 1 ketika menggunakan apapun
. (terima kasih kepada Michal Stefanow's jawaban untuk menunjukkan setiap
, dan lihat yang relevan spec here)
Berikut ini's sebuah taman bermain yang menunjukkan bagaimana berbagai langkah mempengaruhi berbagai jenis masukan:
<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>
Seperti biasa, aku'll menambahkan catatan cepat: ingat bahwa validasi sisi klien hanya kenyamanan untuk pengguna. Anda juga harus memvalidasi pada server-side!
Via: http://blog.isotoma.com/2012/03/html5-input-typenumber-and-decimalsfloats-in-chrome/
Tetapi bagaimana jika anda ingin semua angka yang akan berlaku, bilangan bulat dan desimal sama? Dalam hal ini, menetapkan langkah untuk "setiap"
<input type="number" step="any" />
Bekerja untuk saya pada Chrome, tidak diuji di browser lain.
Anda dapat menggunakan:
<input type="number" step="any" min="0" max="100" value="22.33">
Anda dapat menggunakan langkah atribut untuk jenis input nomor:
<input type="number" id="totalAmt" step="0.1"></input>
langkah="salah"
akan memungkinkan setiap desimal.
langkah="1"
akan memungkinkan tidak ada desimal.
langkah="0.5"
akan memungkinkan 0.5; 1; 1.5; ...
langkah="0.1"
akan memungkinkan 0.1; 0.2; 0.3; 0.4; ...
Berdasarkan ini jawaban
<input type="text" id="sno" placeholder="Only float with dot !"
onkeypress="return (event.charCode >= 48 && event.charCode <= 57) ||
event.charCode == 46 || event.charCode == 0 ">
Artinya :
Char kode :
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Backspace
(jika tidak perlu me-refresh halaman di Firefox)dot
&&
ini DAN
, ||
adalah ATAU
operator.
jika anda mencoba mengapung dengan koma :
<input type="text" id="sno" placeholder="Only float with comma !"
onkeypress="return (event.charCode >= 48 && event.charCode <= 57) ||
event.charCode == 44 || event.charCode == 0 ">
Didukung Chromium dan Firefox (Linux X64)(browser lain saya tidak ada.)
Aku melakukannya
<input id="relacionac" name="relacionac" type="number" min="0.4" max="0.7" placeholder="0,40-0,70" class="form-control input-md" step="0.01">
kemudian, saya mendefinisikan min di 0,4 dan max di 0,7 dengan step 0.01: 0.4, 0.41, 0,42 0.7 ...
Aku punya masalah yang sama, dan aku bisa memperbaikinya dengan hanya menempatkan koma dan a periode/berhenti jumlah karena perancis lokalisasi.
Sehingga bekerja dengan:
<input type="nomor" nilai="" />2 OK
2,5 OK
2.5 KO (jumlah ini dianggap "ilegal" dan anda menerima nilai kosong).