Foros del Web » Programando para Internet » Javascript »

Deshabilitar parte de formulario con checkbox

Estas en el tema de Deshabilitar parte de formulario con checkbox en el foro de Javascript en Foros del Web. Hola! Tengo un formulario en el que hay que rellenar estudios. En una parte tengo que introducir la fecha de fin de estudios pero cabe ...
  #1 (permalink)  
Antiguo 16/09/2008, 03:20
 
Fecha de Ingreso: agosto-2008
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
Deshabilitar parte de formulario con checkbox

Hola!

Tengo un formulario en el que hay que rellenar estudios.
En una parte tengo que introducir la fecha de fin de estudios pero cabe la posibilidad de que todavía se esté cursando.

Tengo 2 campos de texto (mesFin, añoFin) y un checkbox (Cursando), cómo hago para que si marco el checkbox no se pueda meter nada en los campos de texto? incluso he visto en otras web que lo cambian también de color...
Alguien sabe hacer esto?

Muchas gracias!
  #2 (permalink)  
Antiguo 16/09/2008, 03:41
Avatar de Legoltaz  
Fecha de Ingreso: agosto-2008
Mensajes: 325
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: Deshabilitar parte de formulario con checkbox

Código PHP:
<input type="checkbox" onClick="var mesFin = document.getElementById('mesFin');var añoFin = document.getElementById('añoFin');if(this.checked){mesFin.disabled = 'true';añoFin.disabled = true;}else{mesFin.disabled = false;añoFin.disabled = false;}" /> 
  #3 (permalink)  
Antiguo 16/09/2008, 03:45
 
Fecha de Ingreso: agosto-2008
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Deshabilitar parte de formulario con checkbox

¡¡¡ MUCHAS GRACIAS LEGOLTAZ !!!!

Y por casualidad sabrías como se podría cambiar el color de la letra cuando deshabilito los 2 campos?

Gracias de nuevo.
  #4 (permalink)  
Antiguo 16/09/2008, 03:46
Avatar de Legoltaz  
Fecha de Ingreso: agosto-2008
Mensajes: 325
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: Deshabilitar parte de formulario con checkbox

Cita:
Iniciado por una_xikilla Ver Mensaje
¡¡¡ MUCHAS GRACIAS LEGOLTAZ !!!!

Y por casualidad sabrías como se podría cambiar el color de la letra cuando deshabilito los 2 campos?

Gracias de nuevo.
Sí, pero en donde? Me refiero a qué campos quieres que se les cambie la letra?
  #5 (permalink)  
Antiguo 16/09/2008, 03:48
 
Fecha de Ingreso: agosto-2008
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Deshabilitar parte de formulario con checkbox

Me gustaría que cuando se deshabilitase el mes y el año (porque se está cursando) aparezca el texto "Mes" y "Año" por ejemplo de color gris (para que quede más claro que esos campos están deshabilitados)
  #6 (permalink)  
Antiguo 16/09/2008, 04:01
Avatar de Legoltaz  
Fecha de Ingreso: agosto-2008
Mensajes: 325
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: Deshabilitar parte de formulario con checkbox

Algo así?:

Código PHP:
<input type="checkbox" onClick="var mesFin = document.getElementById('mesFin');var añoFin = document.getElementById('añoFin');var mes = document.getElementById('mes');var año = document.getElementById('año');if(this.checked){mesFin.disabled = 'true';añoFin.disabled = true;mes.style.color = 'grey';año.style.color = 'grey';}else{mesFin.disabled = false;añoFin.disabled = false;mes.style.color = 'black';año.style.color = 'black';}" /> <br /><br />
<
p id="mes">Mes</p> <input id="mesFin" /><br />
<
p id="año">Año</p> <input id="añoFin" /> 
  #7 (permalink)  
Antiguo 16/09/2008, 04:23
 
Fecha de Ingreso: agosto-2008
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Deshabilitar parte de formulario con checkbox

Pues no me cambia el color...
  #8 (permalink)  
Antiguo 16/09/2008, 04:40
 
Fecha de Ingreso: agosto-2008
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Deshabilitar parte de formulario con checkbox

El color en principio es el azul.
Marco la casilla (no pasa nada), la desactivo y se pone de color negro.

Qué ocurre?
  #9 (permalink)  
Antiguo 16/09/2008, 07:33
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Deshabilitar parte de formulario con checkbox

En el código de Legoltaz lo que está mal es que debería ser gray en vez de grey (quizás hasta sea mejor especificar el código del color en hexadecimal para evitar confusión), aunque es poco semántico, ya que el texto no es un párrafo sino un <label>.

Otra cosa, para facilitar la lecutura del código te recomiendo que lo pongas en una función.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #10 (permalink)  
Antiguo 16/09/2008, 07:44
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Deshabilitar parte de formulario con checkbox

Cita:
Iniciado por David el Grande Ver Mensaje
En el código de Legoltaz lo que está mal es que debería ser gray en vez de grey (quizás hasta sea mejor especificar el código del color en hexadecimal para evitar confusión), aunque es poco semántico, ya que el texto no es un párrafo sino un <label>.

Otra cosa, para facilitar la lecutura del código te recomiendo que lo pongas en una función.
Hola:

No conozco todos los colores, pero tanto gray como grey son valores válidos (lo que no sé es si los soportan todos los navegadores.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #11 (permalink)  
Antiguo 16/09/2008, 07:49
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Respuesta: Deshabilitar parte de formulario con checkbox

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

No conozco todos los colores, pero tanto gray como grey son valores válidos (lo que no sé es si los soportan todos los navegadores.

Saludos
Infelizmente, he probado con grey y no funcionó en IE , por eso sugerí la modificación .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #12 (permalink)  
Antiguo 18/09/2008, 04:15
 
Fecha de Ingreso: agosto-2008
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Deshabilitar parte de formulario con checkbox

El color no consigo que cambie, no sé por qué.

Voy a poner el código a ver que puede ser...

Código:
function comprobarCheckBox(){ 

/*if (document.formEstudios.checkbox.checked) 
{
document.formEstudios.fechaFin.disabled = true;
document.formEstudios.fechaInicio.style.color = "#CCCCCC";
}
else
{
document.formEstudios.fechaFin.disabled = false;
document.formEstudios.fechaInicio.style.color = "#FFFFFF";
} */
var fFin = document.getElementById('fFin');
var fechaFin = document.getElementById('fechaFin');

if(this.checked){
	fechaFin.disabled = true;
	fFin.style.color = '#999999';
}else{
	fechaFin.disabled = false;
	fFin.style.color = '#000080';
} 

}
<
Código HTML:
td height="30" align="right" bgcolor="#FFFF66" class="FuenteRegistro"><p id="fFin">FECHA FIN </p></td>
                    <td width="27%" align="left" bgcolor="#FFFF66" class="FuenteRegistro"><input name="fechaFin" type="text" id="label" size="7" maxlength="7" />                  
                     (mm-aaaa) 
                     <label for="checkbox"></label></td>
                    <td width="43%" align="left" bgcolor="#FFFF66" class="FuenteRegistro"><input type="checkbox" name="checkbox" value="checkbox" id="checkbox" onClick="comprobarCheckBox();"/>
                      <label for="checkbox">Cursando actualmente </label></td> 
  #13 (permalink)  
Antiguo 18/09/2008, 10:03
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Deshabilitar parte de formulario con checkbox

Hay dos errores, estás tratando de obtener por document.getElementById el input fechaFin, cuando ese input no tiene id, solo tiene name.

Otra cosa, this.checked no es válido en ese contexto, siempre será false, debes pasarle como parámetro el checkbox.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
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 13:18.