Foros del Web » Programando para Internet » Javascript »

Campo sin posibilidad de enviar el foco

Estas en el tema de Campo sin posibilidad de enviar el foco en el foro de Javascript en Foros del Web. Hola, hace tiempo encontré este código para enviar el foco al primer campo tipo TEXT del formulario: Cita: for(m=0;m<document.forms[0].elements.length;m++) { if (document.forms[0].elements[m].type=="text") { document.forms[0].elements[m].focus(); break; ...
  #1 (permalink)  
Antiguo 22/02/2006, 01:54
j@n
 
Fecha de Ingreso: febrero-2004
Mensajes: 178
Antigüedad: 20 años, 2 meses
Puntos: 0
Pregunta Campo sin posibilidad de enviar el foco

Hola, hace tiempo encontré este código para enviar el foco al primer campo tipo TEXT del formulario:

Cita:
for(m=0;m<document.forms[0].elements.length;m++)
{
if (document.forms[0].elements[m].type=="text")
{
document.forms[0].elements[m].focus();
break;
}
}
Pero necesito que sólo envíe el focus() al campo que pueda recibirlo.
Quiero decir, a un campo TEXT que no esté en ReadOnly o Disabled

Ya que a veces, intenta enviar el foco a un campo READONLY y dá error de javascript.....

¿me entienden?

Espero su ayuda, gracias
j@n
  #2 (permalink)  
Antiguo 22/02/2006, 02:14
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

El foco también puede recibirlo un botón, un select, un radio...

Más o menos podría ser:

f = focument.forms.formulario1;
i = 0;
buscando = true
while (i < f.elements.length && buscando) {
buscando = (buscando && (!f.elements[i].disabled || !f.elements[i].readOnly));
i ++;

}
if (!buscando) f.elements[--i].focus();

Lo puse "a capella" así que puede tener errores... pruébalo y si hace falta lo retocamos.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 22/02/2006, 03:09
j@n
 
Fecha de Ingreso: febrero-2004
Mensajes: 178
Antigüedad: 20 años, 2 meses
Puntos: 0
De acuerdo modificado

muchas gracias.
con algunos retoques me funciona bien:

dejo el código por si alguien lo necesita (y si se puede optimizar/mejorar... me lo comentais......)


Cita:
f = document.forms[0];
i = 0;
buscando = false
while (i<f.elements.length && !buscando)
{
if (f.elements[i].type=="text")
{
buscando = !f.elements[i].disabled && !f.elements[i].readOnly;
}
i++;
}
if (buscando) f.elements[--i].focus();
thanks
j@n
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:22.