2009-09-09 4 views

Antwort

-1

sehen:

http://www.javascriptkit.com/javatutors/javascriptkey2.shtml

<script type="text/javascript"> 
function displayunicode(e){ 
var unicode=e.keyCode? e.keyCode : e.charCode 
if unicode >= 48 && unicode <= 57 { 
    alert('number') 
} 
else{ 
} 
    alert('nonnumber') 
} 
</script> 
<form> 
<input type="text" size="2" maxlength="1" onkeyup="displayunicode(event); this.select()" /> 
</form> 
+0

Das ist nicht genau, Sie müssen auch die Nummernnummern eingeben. http://www.cambiaresearch.com/articles/15/javascript-key-codes – Asterius

+0

Das ist nicht korrekt. Es behandelt keine Nummernblock-Tasten –

1

habe ich die folgende Funktion zu überprüfen, ob eine bestimmte Zeichenfolge Zahl ist oder nicht

// Validate Numeric inputs 
function isNumber(o) { 
    return o == '' || !isNaN(o - 0); 
} 

Unter der Annahme, dass Ihr Schlüsselcode auf dem keyup oder keydown Ereignis ist in keyCode Variable:

var keyCode = e.keyCode || e.which; 
if (keyCode >= 96 && keyCode <= 105) { 
     // Numpad keys 
     keyCode -= 48; 
} 
console.log(isNumber(String.fromCharCode(keyCode))); 
0

Verwenden Sie event.key, um den tatsächlichen Wert zu erhalten. wenn integer zu überprüfen, nur isFinite verwenden

input.addEventListener("keydown", function(event) { 
    const isNumber = isFinite(event.key); 
}); 

Eine einfache HTML Lösung wäre, den number Typen Eingang zu verwenden. Es beschränkt sich auf nur Zahlen (Art von).

<input type="number"> 

So oder so, sollten Sie alle Benutzereingaben mit reinigen:

string.replace(/[^0-9]/g,''); 
0

erlauben nur 0-9, werden andere Buchstaben verschluckt werden.

$('#id').keypress(function (e) { 
      var validkeys = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']; 
      if (validkeys.indexOf(e.key) < 0) 
       return false; 
     }); 
Verwandte Themen