HTML 5
Anda dapat menggunakan nomor jenis masukan HTML5 untuk membatasi hanya entri nomor:
<input type="number" name="someid" />
Ini hanya akan berfungsi di browser keluhan HTML5. Pastikan doctype dokumen html Anda adalah:
<!DOCTYPE html>
Lihat juga https://github.com/jonstipe/number-polyfill untuk dukungan transparan di browser lama.
JavaScript
Pembaruan: Ada solusi baru dan sangat sederhana untuk ini:
Ini memungkinkan Anda untuk menggunakan segala jenis filter input pada teks <input>
, termasuk berbagai filter numerik. Ini akan menangani dengan benar Salin + Tempel, Seret + Jatuhkan, pintasan keyboard, operasi menu konteks, tombol yang tidak dapat diketik, dan semua tata letak keyboard.
Lihat jawaban ini atau coba sendiri di JSFiddle .
Untuk tujuan umum, Anda dapat memiliki validasi JS seperti di bawah ini:
function isNumberKey(evt){
var charCode = (evt.which) ? evt.which : evt.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}
<input name="someid" type="number" onkeypress="return isNumberKey(event)"/>
Jika Anda ingin mengizinkan desimal, ganti "jika kondisi" dengan ini:
if (charCode > 31 && (charCode != 46 &&(charCode < 48 || charCode > 57)))
Sumber: Input teks HTML hanya mengizinkan input numerik
Demo JSFiddle: http://jsfiddle.net/viralpatel/nSjy7/