2009-09-09 21 views

Respuesta

-1

ver esto:

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

Esto no es exacto, debe insertar también los números del teclado numérico. http://www.cambiaresearch.com/articles/15/javascript-key-codes – Asterius

+0

Eso no es correcto. no maneja las teclas del teclado numérico –

1

que utilizó la siguiente función para comprobar si una determinada cadena es el número o no

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

Suponiendo que el código de tecla en el keyup o evento KeyDown es en la variable keyCode:

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

Use event.key para obtener el valor real. Para comprobar si entero, sólo tiene que utilizar isFinite

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

Una solución HTML más fácil sería utilizar la entrada number tipo. Se restringe a solo números (tipo de).

<input type="number"> 

De cualquier manera, usted debe limpiar todas las entradas de usuario con:

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

sólo permiten 0-9, serán tragadas otras letras.

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