2009-04-30 13 views
6

¿Cómo envío una tecla de activación de un código de tecla en particular, por ej. ¿Evento "9" en un TextBox usando JQuery programáticamente?Cómo enviar un activador de pulsación de tecla mediante JQuery

Esto es lo que pretendo hacer; Mediante programación, ingrese un valor en un cuadro de texto y luego active mediante programación una tabkey en el cuadro de texto para salir del campo.

mi código

$("#tags1").val("comp") // Works well 

$("#tags1").trigger("keypress",[9]); // Fails!! 

Gat

Respuesta

6

Los documentos jQuery afirman que sólo pasará los atributos de eventos normalizada = las propiedades del objeto jQuery.Event, que no parecen incluir evento- datos específicos.

Intenté, y no pude conseguir que inserte texto en un cuadro de texto, incluso cuando reutilizo un objeto de evento que creó una pulsación de tecla del navegador, por lo que no parece posible.

¿Por qué no puede simplemente cambiar el valor del cuadro de texto y llamar a blur() para salir de él? (O enfoque() en el que desea entrar en el siguiente?)

3

No es exactamente lo que pidieron, pero en lugar de utilizar pulsación de tecla esto podría lograr lo que desea:

$("#tags1").blur(); 

o incluso

$("#tags1").next().focus(); 
1

Probar:

$("#tags1").val("comp").trigger("keypress",[9]); 

o

$("#tags1").val("comp").trigger("keypress", [{ 
    preventDefault:function(){}, 
    keyCode:9 
    }]); 
-1

Prueba esto:

$('textarea:input').live('keypress', function(e) { 
    if (e.keyCode == 9) { 
     e.preventDefault(); 

     // Press TAB to append a string (keeps the original TEXTAREA text). 
     $(this).append("TAB TAB TAB AFTER TEXTAREA TEXT"); 

     // Press TAB to append a string (keeps the original TEXTAREA text). 
     $(this).focus().prepend("TAB TAB TAB BEFORE TEXTAREA TEXT"); 

     // Press TAB to replace a all text inside TEXTAREA. 
     $(this).val("INSERT INTO TEXTAREA/REPLACE EXISTING TEXT"); 

    } 
}); 

Si desea añadir texto dentro el área de texto (por el cursor activo - como CTRL + V), es posible que desee utilizar "Tabby"(JS source code) (plugin de jQuery - 254 líneas de código ...!).

También puede encontrar inspiración en el YUI editor que le permitirá agregar TAB dentro del editor.

0

Si desea agregar un valor a una entrada/área de texto, active el evento "enter".

gatillo como este

$('input').val(input_value).blur(); 
1

que creó un simple jQuery plugin cual no resuelve este problema. Utiliza el selector ': tabbable' de jQuery UI para encontrar el siguiente elemento 'tabbable' y lo selecciona.

Ejemplo de uso:

// Simulate tab key 
$.tabNext(); 
Cuestiones relacionadas