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();
}