Saya memiliki situs versi seluler dan memiliki beberapa input
elemen HTML di dalamnya, seperti ini:
<input type="text" name="txtAccessoryCost" size="6" />
Saya telah menyematkan situs ke dalam WebView
kemungkinan konsumsi Android 2.1, sehingga itu juga akan menjadi aplikasi Android.
Apakah mungkin untuk mendapatkan keyboard dengan angka dan bukan yang default dengan huruf ketika input
elemen HTML ini difokuskan?
Atau, apakah mungkin untuk menyetelnya untuk seluruh aplikasi (mungkin sesuatu di file Manifest ), jika tidak layak untuk elemen HTML?
inputmode="number"
atribut tampaknya seperti jawaban yang benar di akhir 2019: developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/... . Saran jawaban tertinggi pada saat komentar ini adalahtype="number"
, yang datang dengan beberapa kesulitannya sendiri;inputmode
tampaknya hanya memengaruhi tampilan keyboard virtual, bukan perilaku / batasan dari input itu sendiri.Jawaban:
<input type="number" /> <input type="tel" />
Keduanya menampilkan keypad numerik saat input mendapatkan fokus.
<input type="search" />
menunjukkan keyboard normal dengan tombol pencarian tambahanSegala sesuatu yang lain tampaknya memunculkan keyboard standar.
sumber
input
type
s , termasuknumber
dantel
.type="tel"
lebih buruk untuk mengetik angka daripada papan ketik untuktype="number"
.<input type="text" pattern="\d*" />
juga menampilkan keyboard numerik, tetapi hanya di iOS, bukan di Android .CATATAN PENTING
Saya memposting ini sebagai jawaban, bukan komentar, karena ini adalah info yang agak penting dan akan menarik lebih banyak perhatian dalam format ini.
Seperti yang ditunjukkan oleh orang lain, Anda dapat memaksa perangkat untuk menampilkan keyboard numerik dengan
type="number"
/type="tel"
, tetapi saya harus menekankan bahwa Anda harus sangat berhati-hati dengan ini.Jika seseorang mengharapkan angka yang diawali dengan angka nol, seperti
000222
, kemungkinan besar dia akan mengalami masalah, karena beberapa browser (Chrome desktop, misalnya) akan mengirim ke server222
, yang bukan itu yang dia inginkan.Tentang
type="tel"
Saya tidak dapat mengatakan hal serupa tetapi secara pribadi saya tidak menggunakannya, karena perilakunya pada telepon yang berbeda dapat bervariasi. Saya telah membatasi diri pada hal-hal sederhanapattern="[0-9]*"
yang tidak berfungsi di Androidsumber
type="tel"
. Catatan spesifikasi yangtel
tidak memberlakukan sintaks tertentu, tidak sepertinumber
, yang mengharuskan nilainya menjadi bilangan floating-point yang valid .Ini seharusnya berhasil. Tetapi saya memiliki masalah yang sama pada ponsel Android.
<input type="number" /> <input type="tel" />
Saya menemukan, bahwa jika saya tidak menyertakan kerangka kerja jquerymobile, keypad ditampilkan dengan benar pada dua jenis bidang.
Tetapi saya belum menemukan solusi untuk menyelesaikan masalah itu, jika Anda benar-benar perlu menggunakan jquerymobile.UPDATE: Saya menemukan, bahwa jika form-tag disimpan dari
<div data-role="page">
Papan tombol angka tidak ditampilkan. Ini pasti bug ...
sumber
inputmode
menurut spesifikasi WHATWG adalah metode default.Untuk perangkat iOS menambahkan
pattern
juga bisa membantu.Untuk penggunaan kompatibilitas mundur
type
juga sejak Chrome menggunakan ini pada versi 66.<input inputmode="numeric" pattern="[0-9]*" type="number" />
sumber
decimal
dan menemukannya di sini developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/…Beberapa browser yang mengirimkan awalan nol ke server ketika tipe inputnya adalah "angka". Jadi saya menggunakan campuran jquery dan html untuk memuat keypad numerik dan juga memastikan bahwa nilainya dikirim sebagai teks bukan sebagai angka:
$(document).ready(function(){ $(".numberonly").focus(function(){$(this).attr("type","number")}); $(".numberonly").blur(function(){$(this).attr("type","text")}); })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="text" class="numberonly">
sumber
type="digits"
pilihan sehingga kami tidak perlu melakukan peretasan ini. Maksud saya, itu tidak seperti angka nol di depan yang langka (Kode Pos di AS adalah contoh yang jelas).input type = number
Jika Anda ingin memberikan masukan angka, Anda dapat menggunakan HTML5 input type = "number" atribut value.
<input type="number" name="n" />
Berikut adalah keyboard yang muncul di iPhone 4:
Tangkapan Layar iPhone dari nomor jenis masukan HTML5 Android 2.2 menggunakan keyboard ini untuk type = number:
Screenshot Android nomor jenis masukan HTML5
sumber
Tambahkan atribut step ke input angka
<input type="number" step="0.01">
Sumber: http://blog.pamelafox.org/2012/05/triggering-numeric-keyboards-with-html5.html
sumber