Todos esos eventos significan cosas ligeramente diferentes, por lo que el que elija dependerá del comportamiento exacto que desee. A juzgar por los detalles de su pregunta, supongo que el que está buscando es la input
.
Los eventos denominados
y keyup
disparan cuando cualquier tecla se suelta y se presiona, respectivamente. El evento de keydown
keypress
similar se keypress
cuando se presiona y luego se suelta una tecla, pero solo se activa mediante teclas que generalmente ingresan valores (como teclas de letras) y no mediante retroceso / eliminación o teclas modificadoras como Shift y Ctrl.
Existe cierta inconsistencia en qué eventos capturan qué y dónde lo almacenan en el evento, por lo que puede ser útil leer los detalles si es absolutamente necesario capturar la entrada clave por clave. Obtendrá ayuda de jQuery para normalizar los objetos de Evento, pero no si está escuchando la elección incorrecta de los tres en primer lugar. [1] [2]
- ¿Cuánto cuesta construir y mantener un sitio web como eBay?
- ¿Cuáles son las tecnologías front-end utilizadas en Saavn?
- ¿El núcleo ASP.NET es bueno para RAD en comparación con otras opciones como PHP?
- Cómo obtener una fila específica en una base de datos MySQL y mostrarla en una nueva página HTML
- ¿Qué hay de nuevo en ASP.NET 5?
El evento de
se activa cuando el usuario actualiza el valor del campo de texto y también hace alguna indicación de que está listo y listo para continuar, en este caso moviendo el foco a otro elemento o campo. En otras palabras, puede considerarlo más como un ahorro atómico: realmente no le importa qué teclas puede presionar el usuario mientras escribe, pero se da cuenta cuando termina de hacer cambios e intenta “comprometerse” ellos avanzando. Si te encuentras ignorando muchos eventos clave porque estás más interesado en el valor final, este evento podría ser una mejor opción. change
Este no está en su lista, pero también hay un evento de
que se activa cada vez que se agrega o elimina texto por cualquier medio. (Creo que habría tenido más sentido llamar a este cambio y a la otra entrada , pero es un hecho bien conocido que los ingenieros frontend no pueden tener cosas buenas). Lo bueno de la input
input
es que capta limpiamente cosas extrañas como la copia / pegar, y también se comporta como cabría esperar para algunos de los nuevos y elegantes tipos de entrada en HTML 5. [3] La desventaja es que tiene errores en IE (sin capturar eliminaciones) y no admitido antes de la versión 9.
[1] Una herramienta ordenada para experimentar: JavaScript Key Event Tester
[2] Tenga en cuenta que leer el valor del campo en una keypress
keydown
o en el controlador de keypress
devolverá el valor que estaba allí antes de presionar la tecla.
[3] No puedo decir que lo haya probado para todos ellos, pero es particularmente bueno para input type="number"
.