JavaScript - Pasar el foco con la tecla enter

 
Vista:
sin imagen de perfil
Val: 19
Ha aumentado su posición en 3 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Pasar el foco con la tecla enter

Publicado por Nestor (12 intervenciones) el 08/01/2019 02:28:20
Este ejemplo que me funciona solo en chrome, podras revisarlo a ver si me podes ayudar?

Este ejemplo lo que hace es saltar de campo en campo con la tecla enter, hasta el ultimo campo del tabindex y luego con un enter mas, hace el submit


****HTML****
1
2
3
4
5
6
7
8
9
10
<input title="Codigo de Socio" name="tnumsoc" maxlength="8" style='width:100px' class="separadorDecimal"
tabindex="1" value="<?php echo $campos["numsoc"]; ?>" <?php if(isset($foco["numsoc"])){echo $foco["numsoc"];} ?> />
 
<input title="Integrante" name="tintsoc" maxlength="2" style='width:30px'
tabindex="2" value="<?php echo $campos["intsoc"]; ?>" <?php if(isset($foco["intsoc"])){echo $foco["intsoc"];} ?> />
 
<input title="Apellido y nombre o razon socias" name="tnomsoc" maxlength="50" style='width:590px;text-transform:uppercase;'
tabindex="3" value="<?php echo $campos["nomsoc"]; ?>" <?php if(isset($foco["nomsoc"])){echo $foco["nomsoc"];} ?> />
 
<input id='boton' tabindex="4" name="bacepto" type="submit" value="Aceptar" style='width:100px'>


****JavaScript****
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
document.addEventListener('keypress', function(evt) {
 
// Si el evento NO es una tecla Enter
if (evt.key !== 'Enter') {
return;
}
 
let element = evt.target;
 
// AQUI logica para encontrar el siguiente
let tabIndex = element.tabIndex + 1;
var next = document.querySelector('[tabindex="'+tabIndex+'"]');
 
// Si encontramos un elemento
if (next) {
next.focus();
event.preventDefault();
}
});
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de ScriptShow
Val: 2.019
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Pasar el foco con la tecla enter

Publicado por ScriptShow (692 intervenciones) el 08/01/2019 03:44:10
Un experimento, revisable:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<input title="Codigo de Socio" name="tnumsoc" maxlength="8" style='width:100px' class="separadorDecimal"
tabindex="1" value="<?php echo $campos["numsoc"]; ?>" <?php if(isset($foco["numsoc"])){echo $foco["numsoc"];} ?> />
 
<input title="Integrante" name="tintsoc" maxlength="2" style='width:30px'
tabindex="2" value="<?php echo $campos["intsoc"]; ?>" <?php if(isset($foco["intsoc"])){echo $foco["intsoc"];} ?> />
 
<input title="Apellido y nombre o razon socias" name="tnomsoc" maxlength="50" style='width:590px;text-transform:uppercase;'
tabindex="3" value="<?php echo $campos["nomsoc"]; ?>" <?php if(isset($foco["nomsoc"])){echo $foco["nomsoc"];} ?> />
 
<input id='boton' tabindex="4" name="bacepto" type="submit" value="Aceptar" style='width:100px'>
 
<script>
var f=0;
document.onkeypress = function(evt) {
var links = document.getElementsByTagName("input");
if (evt.keyCode == '13') {
links[f].focus();
if (f<3) {f++} else {f=0}
evt.preventDefault();
}
}
</script>

Es a modo de test. Hay que probar y ajustar. No he podido dedicar el tiempo suficiente...

Espero sea útil.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 19
Ha aumentado su posición en 3 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Pasar el foco con la tecla enter

Publicado por Nestor (12 intervenciones) el 08/01/2019 12:54:30
ScriptShow, probe el ejemplo y no funciona correctamente, o sea, funciona en los tres navegadores pero no correctamente, y lamentablemente no tengo los conocimientos de javascript como para resolverlo.
Una cosa interesante que tenia mi ejemplo es la propiedad "tabindex", esto me permitia desde html indicar el salto y script se basaba en esto para saltar.
Con tu ejemplo, el cual agradezco, hay que tocar el script y esto limita su reutilizacion en otros formularios.

Gracias por tu ayuda y bueno, si alguna vez tenes tiempo y revisarlo, te lo voy a agradecer, mientras sigo intentando

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar