2011-03-11 15 views

Respuesta

28

Usted tendrá que adjuntar un evento "keyup" al cuadro de texto y el interior de la verificación de eventos para el keycodes desea:

$("#hi").bind("keyup", function(e) { 
     //on letter number 
     if (e.which <= 90 && e.which >= 48) 
     { 
      alert('hello'); 
     } 
}); 
+1

no funciona cuando el uso de números de su teclado. http://www.javascripter.net/faq/keycodes.htm – dreagan

1
<input id="textbox" type='text' id='hi /> 

$("#textbox").keypress(function (e){ 
    if (e.which <= 90 && e.which >= 48) 
     { 
      alert('Letter or number click'); 
     } 
}); 
11

Si desea comprobar que el personaje se ha escrito, keyup es el evento equivocado Solo el evento keypress puede informarle de manera confiable sobre el carácter escrito. Puede hacerlo de la siguiente manera: cuentas

$("#hi").keypress(function(e) { 
    var charTyped = String.fromCharCode(e.which); 
    if (/[a-z\d]/i.test(charTyped)) { 
     alert("Letter or number typed: " + charTyped); 
    } 
}); 
+0

¿Por qué el evento keypress es más confiable? – Kumar

+1

@Kumar: Debido a que 'keyup' y' keydown' tienen que ver con qué tecla física se presionó mientras 'keypress' se refiere a qué entrada de texto resultó de la pulsación de tecla. –

0
<input type="text" id="hi" onkeypress="keyPress()" /> 

function keyPress(e){ 
    var key, x = e || window.event; key = (x.keyCode || x.which); 
    if(key <= 90 && key >= 48){ 
    alert("Key pressed"); 
    } 
} 
0

Este código añadido para los números, caracteres y dígitos del teclado numérico:

document.querySelector(selector).addEventListener('keypress', function() { 
    if (e.which <= 90 && e.which >= 48 || e.which >= 96 && e.which <= 105) { 
    alert('keycode ' + e.which + ' triggered this event'); 
    //do whatever 
    } 
}); 
Cuestiones relacionadas