2009-03-18 15 views
6

Birisi Javascript'te kullanıcı girişini (giriş etiketinde) kısıtlamak için bir örnek gösterebilir mi? biz sayısal haricinde başka girişini görmez böylece (type = "text") yalnızca, sayısal kabul girişini ayarlamakjavascript kullanarak kullanıcı girdisini kısıtla

şey ...

ben gibi (bu sayı girişi için kullanışlı olduğunu düşünüyorum

 
Please Input Date: 
|-----------------| 
| / / | 
|-----------------| 

PS: duydum WebForms 2.0 nasıl gibi desenli girdi, bir şey yaratmak için bana göster lütfen zip, kredi kartı, para, değer, skor, tarih vb ...) ve eğer gelecekte bunu destekleyecek ... (Asit 3 uyumlu tarayıcı?)

input type = "tarihi"
input type = "zaman"
input type = "sayı"
input type = "para"

Ama ileride sadece haber oldu: D

cevap

8

Bu size yardımcı olabilir.

http://www.w3schools.com/jsref/event_onkeydown.asp

<html> 
<body> 

<script type="text/javascript"> 
function noNumbers(e) 
{ 
var keynum; 
var keychar; 
var numcheck; 

if(window.event) // IE 
{ 
keynum = e.keyCode; 
} 
else if(e.which) // Netscape/Firefox/Opera 
{ 
keynum = e.which; 
} 
keychar = String.fromCharCode(keynum); 
numcheck = /\d/; 
return !numcheck.test(keychar); 
} 
</script> 

<form> 
<input type="text" onkeydown="return noNumbers(event)" /> 
</form> 

</body> 
</html> 
+0

Evet, bu basit karakter filtreleme için çalışıyor ... ama tam bir tarih gibi ("mm/dd/yy") tam biçimli formatlar hakkında. Doğru biçim değilse ya da ilk rakamları giremeyeceğiniz taktirde false döndüremezsiniz. –

+1

Hayır, bu doğru, ama nasıl yapılabileceği konusunda belirli bir fikir veriyor. Fx. Sadece tarih dizesinin ilk harfinde 0 ve 1 yazabilirsiniz. Kullanıcı bunun üzerinde bir sayı yazarsa, numara kaydedilmeyecekti. Ama evet, bu özel kodlar tüm büyü yapmaz. –

+0

Evet, sadece açıklık için yorum yaptım;) –

3

Form gönderiminde jQuery Validate (veya JS framework teklifleriniz ne olursa olsun) gibi belirli lib'leri kullanabilirsiniz. Diğer çözüm, keyUp & bulanıklık olaylarındaki değeri kontrol etmektir, ancak kötü biçimlendirilmiş girdiyle ne yapacağına karar vermek oldukça karmaşık olabilir (özellikle format biraz karmaşık olduğunda - yani sadece istenmeyen karakterler değil). Bu yüzden, hepsinden öte, istemci tarafında kontrol etmeyi öneriyorum.

+0

Zaten form gönderme doğrulama yöntemim var: D – Dels

5

Bu soru zaten kabul edilen bir cevabı vardır, ama daha iyi bir çözüm bu olduğunu düşünüyorum. Bunu kendiniz anahtar kilitleme vb. Üzerinde uygulamak zorunda değilsiniz, bunun için kütüphaneler var. "Giriş maskeleri" ni tarif ettiğiniz tekniği çağırırlar. this jQuery plugin'a göz at, tam olarak istediğini yapıyor.

+1

Bu jQuery eklentisi harika. – Matthew

+0

Bu eklentiyi seviyorum ancak sorun, çok sayıda sorunun olduğu hem yerel hem de krom tarayıcılarda birden çok Android cihazda kalıyor. Çoğunlukla, Android'lere gelince, genellikle maskeyi tamamen kaldırırım. –

İlgili konular