HTML 5
Sen kullanabilirsiniz HTML5 giriş tipi numarasını tek sayı girişlerini sınırlamak için:
<input type="number" name="someid" />
Bu yalnızca HTML5 şikayet tarayıcısında çalışır. Html belgenizin dokümanı olduğundan emin olun:
<!DOCTYPE html>
Daha eski tarayıcılarda şeffaf destek için ayrıca bkz. Https://github.com/jonstipe/number-polyfill .
JavaScript
Güncelleme: Bunun için yeni ve çok basit bir çözüm var:
Çeşitli sayısal filtreler de dahil olmak üzere bir metin üzerinde her türlü giriş filtresini kullanmanızı sağlar <input>
. Bu, Kopyala + Yapıştır, Sürükle + Bırak, klavye kısayolları, bağlam menüsü işlemleri, yazılamaz tuşlar ve tüm klavye düzenlerini doğru şekilde işler.
Bu cevabı görün veya JSFiddle'da kendiniz deneyin .
Genel amaçlı olarak, JS doğrulaması aşağıdaki gibi olabilir:
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)"/>
Ondalık sayılara izin vermek istiyorsanız, "if koşulunu" bununla değiştirin:
if (charCode > 31 && (charCode != 46 &&(charCode < 48 || charCode > 57)))
Kaynak: HTML metin girişi yalnızca sayısal girişe izin verir
JSFiddle demosu: http://jsfiddle.net/viralpatel/nSjy7/