Tengo que rellenar el periodo de unos estudios.
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";
}
}