Foros del Web » Programando para Internet » Javascript »

validaciones de 2 fechas y un checkbox

Estas en el tema de validaciones de 2 fechas y un checkbox en el foro de Javascript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 06/05/2009, 03:24
 
Fecha de Ingreso: agosto-2008
Mensajes: 161
Antigüedad: 15 años, 8 meses
Puntos: 0
validaciones de 2 fechas y un checkbox

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";
	} 
}
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 08:49.