tengo una entrada de texto con un controlador de eventos onkeydown que convierte <Introduzca> a <Tab> cambiando keyCode del evento del 13 al 9.¿Cómo convierto Enter to Tab (con cambio de foco) en IE9? Se trabajó en IE8
<input type="text" onkeydown="enterToTab(event);" onchange="changeEvent(this);"
name="" value="" />
<!-- Other inputs exist as created via the DOM, but they are not sibling elements. -->
Javascript:
function enterToTab(myEvent) {
if (myEvent.keyCode == 13) {
myEvent.keyCode = 9;
}
}
function changeEvent(myInput) { var test = "hello"; }
En IE8, esto provocó que el evento onchange se disparara, pero eso no sucede en IE9. En cambio, el campo de entrada conserva el foco. ¿Cómo puedo hacer que eso suceda? (Funciona en Firefox 3.6 y Chrome 10.0.) Esto funciona incluso en el modo de navegador IE9 si configuro el modo de documento en "estándares IE8". Pero no funcionará con un Modo de documento de "Estándares IE9". (Mi DocType es XHTML 1.0 Transitional.)
Dado que funciona en IE7 & 8, ¿podría ser un error en IE9 que se solucione?
por favor: no puedo uso input.blur()
o establecer manualmente un nuevo enfoque, el cual es asesorado por todas las otras soluciones que he leído. Ya he probado onkeypress y onkeyup sin suerte. Necesito una solución genérica que haga que la aplicación web se comporte literalmente como si golpeara <Tab>. Además, no tengo jQuery, sin embargo, Dojo 1.5 está disponible para mí.
También tenga en cuenta: SÉ que este comportamiento es "incorrecto" y que Enter debe enviar el formulario. Sin embargo, el personal de mi cliente proviene originalmente de un entorno de pantalla verde donde Enter los mueve entre campos. Debemos conservar la misma IU. Es lo que es.
ACTUALIZACIÓN: Encontré una diferencia entre IE8 & IE9. En IE8, mi configuración de myEvent.keyCode
se mantiene. En IE9, NO. Puedo actualizar window.event.keyCode
, y se mantendrá, pero eso no afectará a lo que ocurra más tarde. Argh ... ¿Alguna idea?
he tenido el mismo problema, pero a través de los objetos COM. Lo tengo publicado [aquí] [1]. Alguien comentó con el mismo problema de JavaScript. Además, nuestra compañía ha abierto una caja de microsoft con la esperanza de obtener una respuesta real. Actualizaré mi pregunta con algo útil. Gracias. [1]: http://stackoverflow.com/questions/5127079/ihtmleventobjput-keycode-fails-in-ie9-rc – mateuscb
La pregunta es por qué querrías hacer esto. Tab es la clave que navega entre los campos. Enter se utiliza para enviar un formulario. Los usuarios esperan este comportamiento, entonces, ¿por qué confundirlos? –
Además, esto no es un error en IE 9. La propiedad 'keyCode' de los objetos' Event' del teclado es de solo lectura en todos los navegadores que no sean IE <= 8 y no hay especificaciones para estas propiedades. –