Pada pertengahan 2015, saya percaya ini adalah solusi terbaik:
<input type="number" pattern="[0-9]*" inputmode="numeric">
Ini akan memberi Anda tombol angka di Android dan iOS:

Ini juga memberi Anda perilaku desktop yang diharapkan dengan tombol panah atas / bawah dan penambahan tombol panah naik / turun ramah keyboard:

Cobalah dalam cuplikan kode ini:
<form>
<input type="number" pattern="[0-9]*" inputmode="numeric">
<button type="submit">Submit</button>
</form>
Dengan menggabungkan keduanya type="number"dan pattern="[0-9]*, kami mendapatkan solusi yang berfungsi di mana-mana. Dan, forward-nya kompatibel dengan inputmodeatribut HTML 5.1 yang diusulkan di masa depan .
Catatan: Menggunakan pola akan memicu validasi formulir asli browser. Anda dapat menonaktifkan ini menggunakan novalidateatribut, atau Anda dapat menyesuaikan pesan kesalahan untuk validasi yang gagal menggunakan titleatribut.
Jika Anda harus dapat memasukkan nol, koma, atau huruf terkemuka - misalnya, kode pos internasional - lihat varian kecil ini .
Kredit dan bacaan lebih lanjut:
http://www.smashingmagazine.com/2015/05/form-inputs-browser-support-issue/
http://danielfriesen.name/blog/2013/09/19/input-type-number-and-ios- tombol angka/