Capturar eventos del teclado

Hola, hace tiempo que no escribo, pero cada vez tengo menos tiempo. El caso es que el otro día me tropece con un pequeño problema en una aplicación ASP.NET y como me pareció interesante la solución he decidio hacer un pequeño post sobre el tema. El problema es capturar un evento de teclado en el lado del cliente cuando un TextBox tiene el foco, para por ejemplo, escribir algo. O sea, la caja de texto tiene el foco, pulso F9 y en el texto aparece inmediatamente una palabra predefinida. La solución es bastante simple.

En el Page_Load ponemos este código

txtPregunta.Attributes.Add("onKeyDown", "return Replace();")

Con esto, asociamos al evento del cliente onKeyDown la función javascript Replace();. El código de esta función los escribiremos en el codigo html de la página en la sección head de la manera siguiente

        <script>
            function Replace()
            {
                if (event.keyCode == 120){ /* F9 */
                    document.getElementById("txtPregunta").value = 'Prueba F9';
                    return false;
                    }
                if (event.keyCode == 121) /* F10 */{
                    document.getElementById("txtPregunta").value = 'Prueba F10';
                    return false;
                    }
                return true;

            }
        </script>   

Con este sencillo código, capturamos el evento y escribimos el texto que queramos en el TextBox. Me queda averiguar si se puede evitar propagando el evento, porque si capturamos F1, despues de nuestro código el navegador mostrará la ayuda.

Espero que les sea útil.

Published viernes, 08 de febrero de 2008 4:38 by Indigo

Comments

# re: Capturar eventos del teclado

sábado, 09 de febrero de 2008 23:52 by math_roger

Esta interesante tu codigo pero porque no utilizas la libreria shortcuts [www.openjs.com/.../keyboard_shortcuts] yo la probe en IE6 y Firefox y funciona muy bien.

# re: Capturar eventos del teclado

lunes, 11 de febrero de 2008 2:44 by Indigo

Hola,

muchas gracias por tu comentario. No conocía esa librería. La verdad es que como era algo tan simple no me plateé nada que no fuera resolverlo yo solo con un código simple (mantenible).

# Capturar eventos del teclado en ASP.NET

miércoles, 05 de marzo de 2008 8:18 by www.webeame.net

El problema es capturar un evento de teclado en el lado del cliente cuando un TextBox tiene el foco, para por ejemplo, escribir algo. O sea, la caja de texto tiene el foco, pulso F9 y en el texto aparece inmediatamente una palabra predefinida...

Leave a Comment

(required) 
(required) 
(optional)
(required) 
Powered by Community Server (Non-Commercial Edition), by Telligent Systems