Un pequeño script que quiero compartir con vosotros

0 views
Skip to first unread message

Rodrigo Álvarez Virgós

unread,
Jan 5, 2009, 6:29:47 AM1/5/09
to JS-Ovillo
El siguiente script sitúa el foco en el primer campo de formulario
cuando se carga el documento, si es que el documento contiene
formularios. La única restricción que tiene es que los campos (input,
select o textarea) estén asociados implícitamente con su label. Ej:
<label for="campo"> Ejemplo: <input id="campo" ... /></label>

/**
* Pone el foco en el primer input, textarea o select del documento
*/
function ponerFocoEnPrimerCampo()
{
var etiquetas = document.getElementsByTagName("label");
var campos;
var tipoDeCampo;
var focoPuesto = false;
var i = 0;

if (etiquetas.length > 0) // hay etiquetas en el documento
{
campos = etiquetas[0].childNodes; // obtenemos los hijos de la
primera etiqueta
/* Recorremos los hijos de la etiqueta hasta encontrar un input,
y le asignamos el foco */
while ((i < campos.length) && (focoPuesto == false))
{
tipoDeCampo = campos[i].nodeName.toLowerCase();
if ((tipoDeCampo == "input") || (tipoDeCampo == "textarea")
|| (tipoDeCampo == "select"))
{
campos[i].focus();
focoPuesto = true;
}
i++;
}
}
}

window.onload = function()
{
ponerFocoEnPrimerCampo();
}

Tei

unread,
Jan 5, 2009, 6:43:09 AM1/5/09
to js-o...@googlegroups.com
2009/1/5 Rodrigo Álvarez Virgós <rodri....@gmail.com>:

>
> El siguiente script sitúa el foco en el primer campo de formulario
> cuando se carga el documento, si es que el documento contiene
> formularios. La única restricción que tiene es que los campos (input,
> select o textarea) estén asociados implícitamente con su label. Ej:
...

> campos[i].focus();
> focoPuesto = true;
aqui igualmente podrias poner
return;
en lugar de focoPuesto = true;

asi tan pronto pone el foco, sale, y no tienes que vigilar focoPuesto.

--
--
ℱin del ℳensaje.

Reply all
Reply to author
Forward
0 new messages