Existe el mes de inicio con el año de inicio y el mes de fin con el año de fin (lo voy a guardar en la base de datos como varchar)
Pero a la vez tengo un checkbox llamado "Cursando"; si está activado se deshabilita el mes de fin y el año de fin.
He hecho las validaciones, pero no me funciona si he activado el checkbox. Cómo lo hago?
Aquí dejo lo que he hecho:
Código:
function validar_formulario () { //Variable que guarda los mensajes de error var mensaje_error; var mensaje; var rol_valido; mensaje_error=" "; var rol_valido=false; if (document.formEstudios.tituloEstudios.value == "") { mensaje_error += "\n\t Titulo - Introduce tu titulo"; //document.form1.nombre.focus(); } if (document.formEstudios.especialidad.value == "") { mensaje_error += "\n\t Especialidad - Introduce una especialidad"; //document.form1.apellidos.focus(); } if (document.formEstudios.centro.value == "") { mensaje_error += "\n\t Centro - Introduce un centro"; //document.form1.lugarNacimiento.focus(); } mIni=document.formEstudios.mesInicio.value; aIni=document.formEstudios.anhoInicio.value; mFin=document.formEstudios.mesFin.value; aFin=document.formEstudios.anhoFin.value; var mayor=0; fecha= new Date(); anyoActual=fecha.getYear(); mesActual=fecha.getMonth()+1; $j=0 if (document.formEstudios.checkbox.checked) { $j=1; } if($j==1){ mFin=mesActual; aFin=anyoActual; } /*control si la fecha inicial es mayor a la inicial*/ if(mFin!="" && mIni!="" && aFin!="" && aIni!="" ){ if (aFin<aIni){mensaje_error += "\n\t EL AÑO FINAL NO PUEDE SER MENOR AL DE INICIO";} if (mFin<mIni && aFin==aIni){mensaje_error += "\n\t EL MES FINAL NO PUEDE SER MENOR AL DE INICIO";} if (mFin==mIni && aFin==aIni){mensaje_error += "\n\t LAS FECHAS NO PUEDEN SER IGUALES";} /*Fin control si la fecha inicial es mayor a la inicial*/ /*fecha mayor a la actual*/ if(aIni>anyoActual) {mensaje_error += "\n\t AÑO de Inicio ANTERIOR AL ACTUAL";} /*fin fecha mayor a la actual*/ if(aFin >anyoActual) {mensaje_error += "\n\t AÑO de Fin POSTERIOR AL ACTUAL";} if(mIni>12) {mensaje_error += "\n\t EL MES INTRODUCIDO NO EXISTE";} if(mFin >12) {mensaje_error += "\n\t EL MES INTRODUCIDO NO EXISTE";} if(mIni>mesActual && aIni==anyoActual) {mensaje_error += "\n\t EL MES INTRODUCIDO ES MAYOR AL ACTUAL";} } if (document.formEstudios.mesInicio.value == "") { mensaje_error += "\n\t Mes Inicio - Introduce un MES de INICIO válido"; } if (document.formEstudios.anhoInicio.value == "") { mensaje_error += "\n\t Año Inicio - Introduce un AÑO de INICIO válido"; } if (document.formEstudios.mesFin.value == "") { mensaje_error += "\n\t Mes Fin - Introduce un MES de FIN válido"; } if (document.formEstudios.anhoFin.value == "") { mensaje_error += "\n\t Año Fin - Introduce un AÑO de FIN válido"; } //Si hay algún campo incorrecto se muestra un mensaje de error if (mensaje_error != " "){ mensaje = "______________________________________________________________\n\n"; mensaje += "El formulario no fue enviado porque hay campos incorrectos\n"; mensaje += "Por favor corrige los campos incorrectos y vuelve a enviar el formulario.\n"; mensaje += "______________________________________________________________\n\n"; mensaje += "Los siguientes campos necesitan ser corregidos: \n"; alert(mensaje + mensaje_error + "\n\n"); return false; } return true; } function comprobarCheckBox(){ $j=0 if (document.formEstudios.checkbox.checked) {$j=1; } if ($j==1){ //se deshabilitan las casillas de mes fin anho fin document.formEstudios.mesFin.disabled = true; document.formEstudios.anhoFin.disabled = true; //estos son los de la fecha de inicio en gris document.getElementById ('fi').style.color = "#000080"; document.getElementById ('mi').style.color = "#000080"; document.getElementById ('ai').style.color = "#000080"; //estos son los de la fecha de fin en gris document.getElementById ('ff').style.color = "#999999"; document.getElementById ('mf').style.color = "#999999"; document.getElementById ('af').style.color = "#999999"; } if ($j==0) { //se habilitan las casillas de mes fin anho fin document.formEstudios.mesFin.disabled = false; document.formEstudios.anhoFin.disabled = false; //estos son los de la fecha de inicio en azul document.getElementById ('fi').style.color = "#000080"; document.getElementById ('mi').style.color = "#000080"; document.getElementById ('ai').style.color = "#000080"; //estos son los de la fecha de fin en azul document.getElementById ('ff').style.color = "#000080"; document.getElementById ('mf').style.color = "#000080"; document.getElementById ('af').style.color = "#000080"; } }