press - Simular presionar la tecla tab con jQuery
jquery trigger key (4)
Tengo algunos cuadros de texto en una página .net y quiero lograr lo siguiente con jQuery: si el usuario presiona regresar, el programa debería comportarse "como si" hubiera usado la tecla de tabulación, seleccionando el siguiente elemento. Probé el siguiente código (y algunos más):
<script type="text/javascript">
jQuery(document).ready(function () {
$(''.tb'').keypress(function (e) {
if (e.keyCode == 13)
{
$(this).trigger("keydown", [9]);
alert("return pressed");
}
});
});
<asp:TextBox ID="TextBox1" runat="server" CssClass="tb"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server" CssClass="tb"></asp:TextBox>
¡Pero simplemente no funciona! ¿Falta algo, cometiendo un error?
Aquí algunos enlaces que utilicé.
A partir de múltiples respuestas, he combinado la solución perfecta para mí, donde entrar actúa como una pestaña en las entradas y selecciona y enfoca la siguiente entrada, selección o área de texto mientras permite ingresar dentro del área de texto.
$("input,select").bind("keydown", function (e) {
var keyCode = e.keyCode || e.which;
if(keyCode === 13) {
e.preventDefault();
$(''input, select, textarea'')
[$(''input,select,textarea'').index(this)+1].focus();
}
});
He creado un complemento simple de jQuery que 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 when enter is pressed
$(''.tb'').bind(''keypress'', function(event){
if(event.which === 13){
if(event.shiftKey){
$.tabPrev();
}
else{
$.tabNext();
}
return false;
}
});
Prueba esto
$(this).trigger({
type: ''keypress'',
which: 9
});
Prueba esto:
$(''.tg'').bind(''keypress'', function(event) {
if(event.which === 13) {
$(this).next().focus();
}
});
o la versión de bucle: http://jsbin.com/ofexat/2