teclas tecla pulsada evento escribir ejemplos detectar codigo javascript jquery triggers keypress

javascript - pulsada - Dispare una tecla presionada con jQuery... y especifique qué tecla presionó



keypress jquery ejemplos (2)

Me gustaría tener un elemento de entrada (tipo = texto) o un elemento de área de texto que valide dinámicamente activando pulsaciones de teclas específicas. Esto se usará para la entrada de pinyin chino, por ejemplo:

El usuario escribe "ma2" en un elemento de entrada. El evento de keydown se activa para cada golpe de teclado, y el 2 nunca aparece. En cambio, cuando el usuario presiona "2", la "a" recibirá una marca de tono, como esta: "á". Al final, el usuario habrá tipeado: "má".

Esto se puede lograr leyendo y cambiando todo el valor de entrada usando $ (elemento) .val (); sin embargo, cuando un elemento de entrada tiene foco y su valor se establece llamando a .val ("algo"), el cursor se mueve hacia el final del texto. Esto funciona bien en la mayoría de las situaciones porque un usuario simplemente continúa escribiendo al final del campo, pero quiero que esto funcione en todas las situaciones.

... otra solución a este problema sería obtener / establecer la ubicación de un cursor dentro de un elemento de entrada o de área de texto. Sin embargo, no creo que esto sea posible en javascript.

Entonces, Remy estaba en el camino correcto, seguro. Disparar pulsaciones de teclas no me permitiría ingresar caracteres especiales sin muchas molestias de todos modos. En cambio, capto el evento de selección y establezco el valor de la entrada / área de texto, y luego muevo el cursor.

No he encontrado nada bueno para obtener / configurar en jQuery, pero lo siguiente realmente me rompió ese problema. Voy a publicar un enlace a mi código de entrada pinyin final cuando sea estable. Está bastante cerca ahora.

http://blog.vishalon.net/Post/57.aspx http://demo.vishalon.net/getset.htm


Además, para un código simple que controle el "caret" en una forma de navegador cruzado, esto podría ser útil:

http://javascript.nwbox.com/cursor_position/

un poco tarde con la respuesta, pero estoy seguro de que todavía encontrarás estas cosas viejas útiles.


Puede que no tenga mucha suerte activando la pulsación de tecla. Estoy bastante seguro de que, a menos que la tecla sea confiable (es decir, se origine en el navegador), no se recuperará.

Sin embargo, puede reemplazar texto e insertar el quilate donde estaba, en lugar de dispararlo al final de la cuerda. Necesita usar setSelectionRange y createTextRange (para IE).

He preparado una pequeña demostración: los reemplazos que verá no coinciden con palabras reales, pero muestra cómo funciona:

http://jsbin.com/emudi/ (para editar la fuente http://jsbin.com/emudi/edit )

El truco es tomar nota de dónde está el quilate, reemplazar la palabra encontrada usando substr (en lugar de regex para evitar reemplazar las coincidencias incorrectas) y luego volver a colocar el quilate al final de la nueva palabra.

El reemplazo se activa en la barra espaciadora o borrando la distancia. Una nota sobre esto: podría activar el reemplazo de un personaje específico (es decir, el ''2''), pero no recomendaría buscar reemplazos en cada pulsación de tecla.