Pregunta

Tengo un formulario como este:

<form name="mine">
    <input type=text name=one>
    <input type=text name=two>
    <input type=text name=three>
</form>

Cuando el usuario escribe un valor en "uno", a veces quiero omitir el campo "dos", dependiendo de lo que escribió.Por ejemplo, si el usuario escribe '123' y usa Tab para pasar al siguiente campo, quiero omitirlo e ir al campo tres.

Intenté usar OnBlur y OnEnter, sin éxito.

Prueba 1:

<form name="mine">
    <input type=text name=one onBlur="if (document.mine.one.value='123') document.three.focus();>
    <input type=text name=two>
    <input type=text name=three>
</form>

Prueba 2:

<form name="mine">
    <input type=text name=one>
    <input type=text name=two onEnter="if (document.mine.one.value='123') document.three.focus();>
    <input type=text name=three>
</form>

pero ninguno de estos funciona.Parece que el navegador no le permite alterar el enfoque mientras éste cambia.

Por cierto, todo esto se intentó con Firefox en Linux.

¿Fue útil?

Solución

Intente adjuntar el atributo tabindex a sus elementos y luego mediante programación (en javaScript cámbielo):

<INPUT tabindex="3" type="submit" name="mySubmit">

Otros consejos

Podrías usar el enfocado evento en el campo dos, que se llamará cuando reciba el foco.En ese momento, el valor del campo 1 debe actualizarse y entonces podrá realizar la verificación.

Si utilizó el método que describe y funcionó, el enfoque también cambiaría cuando el usuario haga clic en el campo, en lugar de tabularlo.Puedo garantizarle que esto resultaría en un usuario frustrado.(No entiendo exactamente por qué no funciona).

En su lugar, como se dijo antes, cambie el índice de tabulación de los campos apropiados tan pronto como cambie el contenido del campo uno.

<form name="mine">
    <input type="text" name="one" onkeypress="if (mine.one.value == '123') mine.three.focus();" />
    <input type="text" name="two">
    <input type="text" name="three">
</form>

Intentar onkeypress en lugar de onblur.Además, sobre el onfocus del campo dos es donde deberías enviar al tres.Supongo que no quieres que escriban dos si uno es 123, así que puedes comprobarlo en dos. onfocus y enviar a tres.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top