2009-03-18 15 views
6

Kann mir jemand ein Beispiel für die Einschränkung der Benutzereingabe (auf Eingabe-Tag) in Javascript zeigen?Benutzereingaben mit Javascript einschränken

Etwas, das, wenn wir den Eingang (type = „text“) auf nur numerischen zu akzeptieren, so dass es anderen Eingang mit Ausnahme numerischen ignorieren ...

Ich denke, es ist für Nummerneingabe praktisch ist (wie zip, Kreditkarte, Geld, Wert, score, Datum etc ...), und wenn Sie mir bitte zeigen, wie mit Mustern erstellen Eingang, so etwas wie:

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

PS: hörte ich WebForms 2.0 wird dies in der Zukunft unterstützen ... (Acid 3-kompatibler Browser?)

input type = "date"
input type = "Zeit"
input type = "number"
input type = "Geld"

Aber es war nur Nachrichten aus Zukunft: D

Antwort

8

Dies könnte Ihnen helfen.

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

Ja, das funktioniert für einfaches Zeichenfiltern ... aber was ist mit vollwertigen Formaten wie einem Datum ("mm/dd/yy"). Sie können nicht einfach false zurückgeben, wenn es nicht das richtige Format ist, sonst werden Sie nie die ersten Ziffern eingeben können. –

+1

Nein, das stimmt, aber es gibt eine gewisse Vorstellung davon, wie es gemacht werden könnte. Fx. Sie könnten nur 0 und 1 in den ersten Buchstaben der Datumszeichenfolge eingeben. Wenn der Benutzer eine Nummer darüber eingeben würde, würde die Nummer nicht registriert werden. Aber ja, diese spezifischen Codes machen nicht die ganze Magie. –

+0

yeah, ich habe gerade für Klarheit kommentiert;) –

3

Sie können bestimmte Bibliotheken wie jQuery Validate (oder was auch immer Ihr JS-Framework bietet) beim Senden von Formularen verwenden. Die andere Lösung besteht darin, den Wert auf den blur-Ereignissen zu steuern, aber es kann ziemlich unordentlich werden, zu entscheiden, was mit schlecht formatierten Einträgen zu tun ist (besonders wenn das Format ein bisschen komplex ist - dh nicht nur unerwünschte Zeichen). Alles in allem würde ich die clientseitige Kontrolle beim Senden empfehlen.

+0

ich habe bereits Formularübermittlungsvalidierungsmethode: D – Dels

5

Diese Frage hat bereits eine akzeptierte Antwort, aber ich denke, dass es eine bessere Lösung ist. Sie müssen das nicht selbst auf Keydown implementieren, dafür gibt es Bibliotheken. Sie bezeichnen die Technik, die Sie "Eingabemasken" beschreiben. Check out this jQuery plugin es macht genau das, was Sie wollen.

+1

Dieses jQuery-Plugin ist genial. – Matthew

+0

Ich liebe dieses Plug-In, aber das Problem bleibt bei mehreren Android-Geräten auf nativen und Chrome-Browsern, wo es zu viele Probleme gibt. Wenn es um Androids geht, entferne ich die Maske meistens vollständig. –

Verwandte Themen