2011-05-25 20 views
15

Tengo un campo de entrada que se llena dinámicamente con algo de AJAX, y una vez que esté lleno me gustaría tener JavaScript para presionar automáticamente "Enter" (evento clave 13) en esa entrada induciendo a otro función, que está oculta para mí, para disparar.Evento de pulsación de tecla simulando JQuery en un campo de entrada

¿Sería posible con jQuery? Tengo este código en este momento, lo que no está funcionando:

$('#myInputId').focus().trigger({ type : 'keypress', which : 13 });

¿Tiene usted alguna idea de lo que estoy haciendo mal?

Gracias,

Masiar

+0

Por qué ¿Crees que pasar un objeto como este debería funcionar? ¿Alguna fuente? –

+0

Encontré que '[...]. Trigger ({...});' en otro tema aquí en StackOverflow. Lo intenté y no funcionó, así que pregunté de nuevo. – Masiar

Respuesta

25

Se puede crear un event object:

$('#myInputId').trigger(jQuery.Event('keypress', { keycode: 13 })); 
+0

Gracias por la entrada, pero el código que señaló no funcionó. Aunque no recibí tu comentario. ¿Quiere decir en lugar de '' presionar tecla'' debería intentar establecer '' keyCode''? – Masiar

+0

Funciona perfectamente de acuerdo con [mi prueba] (http://jsfiddle.net/SqSyk/) - probado en Chrome 12, IE9 y FF 3.6 –

+1

@Masiar que quería decir cambiar a 'jQuery.Event ('keypress', {keyCode: 13}) 'pero vea mi caso de prueba y avíseme si no funciona para usted. EDITAR: ahora podría funcionar si el manejador 'keypress' no se agregó con jQuery: ¿es este el caso? –

0

Hola usted podría intentar utilizar el evento de cambio para cuando los cambios en el área de entrada:

$('#myInputId').change(function(){ 
    $('#myInputId').focus().trigger({ type : 'keypress', which : 13 }); 


}); 
+0

Gracias por la sugerencia, pero esto tampoco funciona :(. – Masiar

Cuestiones relacionadas