2013-12-19 3 views
15

Ich benutze folgenden JavaScript-Code, der ich denke, sollte nur Nummern, Rücktaste, Delet, Pfeil nach links und Rechtspfeiltasten in Textbox erlauben, aber es erlaubt auch Alphabete. Ich weiß nicht warum?Wie man Zahlen, Rücktaste, Löschung, linke und rechte Pfeiltasten im HTML-Text erlaubt?

function validateQty(event) { 
    var key = window.event ? event.keyCode : event.which; 

if (event.keyCode == 8 || event.keyCode == 46 
|| event.keyCode == 37 || event.keyCode == 39) { 
    return true; 
} 
else if (key < 48 || key > 57) { 
    return false; 
} 
else return true; 
}; 

Aufruf dieser Funktion als

<input type="text" onkeypress='validateQty(event)'> 
+0

Was meinen Sie mit LASSEN * Backspace *, * löschen *, * links * und * rechts * –

+0

@ Mr.Alien - ich meine diese Schlüssel. Redigiert meine Frage. –

Antwort

11

Kein Zweifel, der Code korrekt ist, aber Sie verpasst "return" Schlüsselwort in Textbox.

<input type="text" onkeypress='return validateQty(event);'> 

können Sie sehen den Code here

+0

Ja, es funktioniert. Aber ein Problem tritt auf, wenn ich ein beliebiges Alphabet kopiere. –

+0

@nkp - Wenn Sie einen Wert einfügen, ohne die Tastatur zu verwenden, wird es offensichtlich ein 'keypress'-Handler nicht fangen. Wenn Sie _with_ die Tastatur einfügen, müssen Sie dies mit "keydown" testen, da ich nicht glaube, dass paste ein "keypress" -Ereignis auslöst. (Vielleicht ist es einfacher, nur unerwünschte Zeichen "Onblur" zu entfernen ...) – nnnnnn

+0

@Learning - ja, das weiß ich. Wollte nur einen Schritt weiter gehen –

0

 function isNumberKey(evt) 
 
     { 
 
     var charCode = (evt.which) ? evt.which : event.keyCode 
 
     if (charCode > 31 && (charCode < 48 || charCode > 57)) 
 
      return false; 
 
     return true; 
 
     }
<HTML> 
 
    <HEAD> 
 
    </HEAD> 
 
    <BODY> 
 
     <input id="txtChar" onkeypress="return isNumberKey(event)" type="text" name="txtChar" maxlength="10"> 
 
    </BODY> 
 
</HTML>

+0

Bitte erläutern Sie, was Sie geschrieben haben. –

+0

geschriebener Code ist für den Benutzer nur numerische, arow Schlüssel erlauben, drücken Sie die Taste im Textfeld, wenn Sie diese Art von Textfeld benötigen ... –

0
<input type="text" class="form-control" id="dompetku_msisdn" name="dompetku_msisdn" placeholder="Phone Number" aria-describedby="helpBlock" onkeydown='return (event.which >= 48 && event.which <= 57) || event.which == 8 || event.which == 46 || event.which == 37 || event.which == 39' required /> </input> 
+0

Während dieser Code die Frage beantworten kann, bietet zusätzliche Kontext in Bezug darauf, wie und/oder warum es löst Das Problem würde den langfristigen Wert der Antwort verbessern. – Badacadabra

Verwandte Themen