Untuk elemen Dan Anda dapat menambahkan atribut
jika Anda menambahkan nilai
Di atas masih akan tidak menghentikan pengguna dari memasukkan nilai secara manual di luar rentang yang ditentukan. Sebagai gantinya, ia akan ditampilkan sembulan yang memberitahukannya untuk memasukkan nilai dalam rentang ini setelah mengirimkan formulir seperti yang ditunjukkan dalam tangkapan layar ini:
Anda dapat menentukan atribut
Ini hanya berfungsi untuk tombol kontrol pemintal. Meskipun pengguna mungkin
dapat mengetikkan angka yang lebih besar dari Cuplikan layar diambil dari Chrome 15 Anda dapat menggunakan acara HTML5
Jika Anda mencari solusi Web Seluler di mana Anda ingin pengguna Anda melihat papan nomor daripada keyboard teks lengkap. Gunakan type = "tel". Ini akan bekerja dengan maxlength yang menyelamatkan Anda dari membuat javascript tambahan. Max dan Min masih akan memungkinkan pengguna untuk Mengetik angka lebih dari maks dan min, yang tidak optimal. Anda dapat menggabungkan semua ini seperti ini:
Larutan: Demo - Lihat versi lengkap kode di sini: Pembaruan 2: Berikut kode pembaruan: https://jsfiddle.net/DRSDavidSoft/zb4ft1qq/2/ Pembaruan 3:Harap dicatat bahwa mengizinkan lebih dari satu titik desimal dimasukkan dapat mengacaukan nilai angka. itu sangat sederhana, dengan beberapa javascript Anda dapat mensimulasikan
Atau jika nilai maks Anda misalnya 99 dan minimum 0, Anda dapat menambahkan ini ke elemen input (nilai Anda akan ditulis ulang oleh nilai maks Anda dll.)
Kemudian (jika Anda mau), Anda dapat memeriksa apakah input benar-benar angka Anda dapat menetapkannya sebagai teks, tetapi menambahkan pettern, yang hanya cocok dengan angka:
Ini berfungsi sempurna dan juga pada ponsel (diuji pada iOS 8 dan Android) muncul nomor keyboard.
Jika Anda menggunakan acara "onkeypress" maka Anda tidak akan mendapatkan batasan pengguna saat mengembangkan (unit test it). Dan jika Anda memiliki persyaratan yang tidak mengizinkan pengguna untuk masuk setelah batas tertentu, lihat kode ini dan coba sekali. Seperti yang dinyatakan oleh yang lain, min/max tidak sama dengan maxlength karena orang masih bisa memasukkan float yang akan lebih besar dari panjang string maksimum yang Anda inginkan. Untuk benar-benar meniru atribut maxlength, Anda dapat melakukan sesuatu seperti ini dalam keadaan darurat (ini setara dengan maxlength = "16"):
Panjang maks tidak akan bekerja dengan
Jawaban Maycow Moura adalah awal yang baik . Namun, solusinya berarti bahwa ketika Anda memasukkan digit kedua semua pengeditan bidang berhenti. Jadi, Anda tidak dapat mengubah nilai atau menghapus karakter apa pun. Kode berikut berhenti di 2, tetapi memungkinkan pengeditan untuk melanjutkan;
Pilihan lain adalah hanya menambahkan pendengar untuk apa pun dengan atribut maxlength dan menambahkan nilai slice ke sana. Dengan asumsi pengguna tidak ingin menggunakan fungsi di dalam setiap peristiwa yang terkait dengan input. Berikut cuplikan kode. Abaikan kode CSS dan HTML, JavaScript yang penting.
Saya punya masalah ini sebelumnya dan saya menyelesaikannya menggunakan kombinasi tipe nomor html5 dan jQuery.
naskah:
Saya tidak tahu apakah kejadiannya sedikit berlebihan tetapi itu menyelesaikan masalah saya . JSfiddle Anda dapat mencoba ini juga untuk input numerik dengan batasan panjang
cara sederhana untuk mengatur panjang maksimum untuk input angka adalah:
Seperti halnya Juga jika Anda ingin memastikan itu adalah
angka positif, Anda dapat mengatur Input HTML
jQuery
Seperti yang saya ketahui, Anda tidak dapat menggunakan acara Saya menemukan solusi hanya dengan menggunakan
Saya juga merekomendasikan untuk menggabungkan
Ugh. Ini seperti seseorang menyerah setengah jalan melalui penerapannya dan berpikir tidak ada yang akan memperhatikan. Untuk alasan apa pun, jawaban di atas tidak menggunakan atribut
Mungkin juga akan berfungsi sebagai fungsi bernama "oninput" tanpa jQuery jika salah satu dari tipe "jQuery-is-the-devil" Anda. Saya tahu sudah ada jawaban, tetapi jika Anda ingin input Anda berperilaku persis seperti atribut
atau jika Anda ingin dapat memasukkan apa pun
Cukup tulis ini ...
Untuk siapa yang mencari batasan global seperti saya:
Ini menangkap setiap penekanan tombol pada dokumen, dan memfilternya jika input adalah input "angka" dan memiliki atribut Atribut yang lebih relevan untuk digunakan adalah |