Problemas con bucle for
Hola a todos, mi problema es el siguiente:
Estoy diseñando un formulario con unos botones que al ser pulsados activen y desactiven campos según proceda, es algo asÃ:
function ActivaEmail(){
var a = document.forms[0];
a.Email.disabled = false;
a.Email.style.backgroundColor="white";
a.Direccion.disabled = true;
a.Direccion.style.backgroundColor="#ededed";
a.CodigoPostal.disabled = true;
a.CodigoPostal.style.backgroundColor="#ededed";
a.Ciudad.disabled = true;
a.Ciudad.style.backgroundColor="#ededed";
a.Provincia.disabled = true;
a.Provincia.style.backgroundColor="#ededed";
a.Telefono1.disabled = true;
a.Telefono1.style.backgroundColor="#ededed";
a.Telefono2.disabled = true;
a.Telefono2.style.backgroundColor="#ededed";
a.HoraContacto1.disabled = true;
a.HoraContacto1.style.backgroundColor="#ededed";
a.HoraContacto2.disabled = true;
a.HoraContacto2.style.backgroundColor="#ededed";
a.Fax.disabled = true;
a.Fax.style.backgroundColor="#ededed";
}
Dado que tengo bastantes funciones de este tipo creo que serÃa bien poder meter los campos a activar y/o desactivar y los cambios de color en arrays y hacer un bucle similar a esto:
for (i=4,i<dis,i++){
var dis = new Array("Email","Direccion","CodigoPostal","Ciudad");
a.dis[i].disabled = false;}
El problema es que no soy capaz de dar con la sintaxis correcta del bucle ¿alguna ayuda? MuchÃsimas gracias.
Estoy diseñando un formulario con unos botones que al ser pulsados activen y desactiven campos según proceda, es algo asÃ:
function ActivaEmail(){
var a = document.forms[0];
a.Email.disabled = false;
a.Email.style.backgroundColor="white";
a.Direccion.disabled = true;
a.Direccion.style.backgroundColor="#ededed";
a.CodigoPostal.disabled = true;
a.CodigoPostal.style.backgroundColor="#ededed";
a.Ciudad.disabled = true;
a.Ciudad.style.backgroundColor="#ededed";
a.Provincia.disabled = true;
a.Provincia.style.backgroundColor="#ededed";
a.Telefono1.disabled = true;
a.Telefono1.style.backgroundColor="#ededed";
a.Telefono2.disabled = true;
a.Telefono2.style.backgroundColor="#ededed";
a.HoraContacto1.disabled = true;
a.HoraContacto1.style.backgroundColor="#ededed";
a.HoraContacto2.disabled = true;
a.HoraContacto2.style.backgroundColor="#ededed";
a.Fax.disabled = true;
a.Fax.style.backgroundColor="#ededed";
}
Dado que tengo bastantes funciones de este tipo creo que serÃa bien poder meter los campos a activar y/o desactivar y los cambios de color en arrays y hacer un bucle similar a esto:
for (i=4,i<dis,i++){
var dis = new Array("Email","Direccion","CodigoPostal","Ciudad");
a.dis[i].disabled = false;}
El problema es que no soy capaz de dar con la sintaxis correcta del bucle ¿alguna ayuda? MuchÃsimas gracias.
La idea que que tenias era correcta pero como bien dices tienes algunos errores de sintaxis.
La forma correcta es algo asi:
for (i=0;i<elementos.length;i++) {
var a = eval("document.forms[0]."+elementos[i]);
a.disabled = false;
a.style.backgroundColor="white";
}
Te he puesto una pagina de ejemplo con lo que creo que quieres hacer en:
http://myheels.webcindario.com/consult/171726/171726.htm
Puedes copiar el codigo de alli.
La forma correcta es algo asi:
for (i=0;i<elementos.length;i++) {
var a = eval("document.forms[0]."+elementos[i]);
a.disabled = false;
a.style.backgroundColor="white";
}
Te he puesto una pagina de ejemplo con lo que creo que quieres hacer en:
http://myheels.webcindario.com/consult/171726/171726.htm
Puedes copiar el codigo de alli.