Ver Mensaje Individual
  #5 (permalink)  
Antiguo 16/04/2006, 15:31
Avatar de jam1138
jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 7 meses
Puntos: 102
Prueba con esto:
Código:
<html>
<head>
<script language="JavaScript" type="text/javascript">
<!--
function cambioEstado(orig) {
		fields= document.formulario.getElementsByTagName('fieldset');
    for (i=0; i<fields.length; i++) {
	      cont= fields[i].childNodes;
				for(j=0; j<cont.length; j++) {
				    if(cont[j].nodeName=='IMG') {
						    cont[j].src= (orig.id==fields[i].id)?'../img/cal.gif':'../img/cal2.gif';
						} else if (cont[j].nodeName=='INPUT') {
						    if(cont[j].type=='text') {
						        cont[j].value='';
						        cont[j].disabled= (orig.id==fields[i].id)?'':'disabled';
								} else if (cont[j].type=='radio') {
								    cont[j].checked= (orig.id==fields[i].id)?'checked':'';
								}
						}
				}
		}
}

/* Agrega la llamada a  al inicio de la función NewCal */
function NewCal(nam, formt, pepe) {
     cambioEstado(pepe); // esto

// Demás contenido...		 
}

//-->
</script>
</head>
<body>
<form name="formulario">
    <fieldset id="field1">
       <input name="tipofecha" id="rbuno" value="1" type="radio" checked="checked"
			     onClick="cambioEstado(this.parentNode)" />
			 <label for="rbuno">Día concreto...</label> <br />
  		 <input name="fecha1" type="text" />
  		 <img src="../img/cal.gif" onclick="NewCal('fecha1', 'ddmmyyyy', this.parentNode)" />
    </fieldset>
    <fieldset id="field2">
       <input name="tipofecha" id="rbdos" value="2" type="radio"
			     onClick="cambioEstado(this.parentNode)" />
			 <label for="rbdos">Posterior a...</label> <br />
  		 <input name="fecha2" type="text" disabled="disabled" />
  		 <img src="../img/cal2.gif" onclick="NewCal('fecha2', 'ddmmyyyy', this.parentNode)" />
    </fieldset>
    <fieldset id="field3">
       <input name="tipofecha" id="rbtres" value="3" type="radio"
			     onClick="cambioEstado(this.parentNode)" />
			 <label for="rbtres">Anterior a...</label> <br />
  		 <input name="fecha3" type="text" disabled="disabled" />
  		 <img src="../img/cal2.gif" onclick="NewCal('fecha3', 'ddmmyyyy', this.parentNode)" />
		</fieldset>
    <fieldset id="field4">
       <input name="tipofecha" id="rbcuatro" value="4" type="radio"
			     onClick="cambioEstado(this.parentNode)" />
			 <label for="rbcuatro">Entre...</label> <br />
  		 <input name="fecha4" type="text" disabled="disabled" />
			 <img src="../img/cal2.gif" onclick="NewCal('fecha4', 'ddmmyyyy', this.parentNode)" />
			     y...
			 <input name="fecha5" type="text" disabled="disabled" />
  		 <img src="../img/cal2.gif" onclick="NewCal('fecha5', 'ddmmyyyy', this.parentNode)" />
    </fieldset>
</form>
</body>
</html>
... era muy lioso tu código, opté por crear una nueva función JS junto con algunas modificaciones en el HTML, de las importantes:
- una "limpieza"
- agregué un <fieldset> para agrupar los elementos que incumben en opción, gracias a eso se simplifica el JS
- eliminé el enlace en la imágen... agregué un nuevo parámetro a la función NewCal() (ojo con eso, ve los comentarios)

Aun se puede simplificar más... peguntaré cómo evitar escribir el ''onClick" a cada rato , es algo que desde hace tiempo me pregunto...

Espero te sirva. Suerte!

PD:
Pregunta: a tu función NewCal(), ¿qué parámetros le estás pasando?, ¿el "fechaX" es el id ó el name del textbox?
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 16/04/2006 a las 15:45