Pongo ésto en el foro de Java porque probablemente lo que necesito se tenga que hacer con éste lenguaje.
Tengo el siguiente javascript para validar que una fecha sea menor a otra entre 2 campos de texto
Código:
Una vez que se valida, se tiene que presionar un "input button", y quiero que cuando la fecha de inicio sea mayor a la fecha de fin, NO SE HAGA LA INSERCIÓN<script language="javascript" type="text/javascript">
// Validación de fecha mayor //
//Formato de la fecha
// 1 = DD/MM/YYYY
// 2 = MM/DD/YYYY
// 3 = YYYY/MM/DD
// 4 = YYYY/DD/MM
var formato = 3;
//**********************************************************************************************
// invierta una fecha dada retornando en formato YYYYMMDD
// dFecIni = Fecha a invertir
// nTipFormat = Formato en que biene la fecha
// 1 = DD/MM/YYYY
// 2 = MM/DD/YYYY
// 3 = YYYY/MM/DD
// 4 = YYYY/DD/MM
function invFecha(nTipFormat,dFecIni){
var dFecIni = dFecIni.replace(/-/g,"/"); // reemplaza el - por /
// primera division fecha
var nPosUno = ponCero(dFecIni.substr(0,dFecIni.indexOf("/")));
// 2º divicion fecha
var nPosDos = ponCero(dFecIni.substr(parseInt(dFecIni.indexOf("/")) + 1,parseInt(dFecIni.lastIndexOf("/")) - parseInt(dFecIni.indexOf("/")) - 1));
// 3º divicion fecha
var nPosTres = ponCero(dFecIni.substr(parseInt(dFecIni.lastIndexOf("/")) + 1));
switch(nTipFormat){
case 1 : // DD/MM/YYYY
dReturnFecha = nPosTres + "" + nPosDos + "" + nPosUno;
break;
case 2 : // MM/DD/YYYY
dReturnFecha = nPosTres + "" + nPosUno + "" +nPosDos;
break;
case 3 : // YYYY/MM/DD
dReturnFecha = nPosUno + "" + nPosDos + "" +nPosTres;
break;
case 4 : // YYYY/DD/MM
dReturnFecha = nPosUno + "" + nPosTres + "" +nPosDos;
break;
}
return dReturnFecha; // retorna la fecha
}
// Agrega un cero delante del strPon cuando tenga solo un caracter
function ponCero(strPon){
if(parseInt(strPon.length)<2)
strPon = "0" + strPon;
return strPon;
}
//*******************************************************************************
// valida que la fecha fecha_ini es menor o igual a fecha_fin
// los parametros fecha_ini, fecha_fin son fecha con divisores validos "-" o "/"
// el parametro dFormat es el tipo de formato en que viene la fecha
// 1 = DD/MM/YYYY
// 2 = MM/DD/YYYY
// 3 = YYYY/MM/DD
// 4 = YYYY/DD/MM
function comparaFecha(dFormat,fecha_ini, fecha_fin){
fecha_ini = invFecha(dFormat,fecha_ini);
fecha_fin = invFecha(dFormat,fecha_fin);
if(fecha_ini > fecha_fin)
return false;
else
return true;
}
function validaFecha( formulario ){
var dFechaMenor = formulario.fecha_ini.value;
var dFechaMayor = formulario.fecha_fin.value;
if(comparaFecha( formato,dFechaMenor,dFechaMayor) == true)
alert("OK. La fecha de inicio es menor que la fecha de fin.");
else
alert("EROR! La fecha de inicio NO es menor que la fecha de fin, por favor corrija el dato");
}
</script>
Aquí está el código de lo que necesito que no se inserte cuando no se cumple que la fecha de fin sea mayor a la de inicio:
Código:
Espero me puedan ayudar, gracias por su atención! <form id="mensaje" action="guardarMensaje.jsp" <%--action="guardarBD.jsp"--%> method="post">
<% out.println(bus.busqueda_evento());%>
<br />
</td>
</tr>
<tr>
<td height="20">
</td>
</tr>
<tr>
<td>
<div id="especial" align="left"></div>
<br />
</td>
</tr>
<tr>
<td>
<!-- <div id="subsancion" align="center"></div> -->
<br />
</td>
</tr>
<tr>
<td>
<!-- <div id="tramite" align="left"></div> -->
<br />
<br />
</td>
</tr>
<tr>
<td>
<!-- <div align="left"> -->
Texto del mensaje
<br/>
<textarea name="motivo" id="motivo" cols="70" rows="3"></textarea>
<br/>
<br/>
<br/>
Fecha de inicio
<input type="text" id="fecha_inicio" name="fecha_ini" />
<input type="button" id="calendario1" value="»" name="calend1" />
Fecha de fin
<input type="text" id="fecha_fin" name="fecha_fin" />
<input type="button" id="calendario2" value="»" name="calend2" />
<br/>
<br/>
<br/>
Regularidad de los mensajes:
<br/>
<br/>
<div>
Diariamente:<input type="radio" id="diariamente" name="frecu" onclick="funcionOcultar();" value="diariamente" checked="checked"></input>
<!--<br/>-->
Solamente en:<input type="radio" id="dia" name="frecu" onclick="funcionVer();" value="dias"></input>
<br/>
<br/>
<div id="miDiv2" style="display:none">
Dom<input type="checkbox" value="Sun" name="dia"/>
Lun<input type="checkbox" value="Mon" name="dia"/>
Mar<input type="checkbox" value="Tue" name="dia"/>
Mié<input type="checkbox" value="Wed" name="dia"/>
Jue<input type="checkbox" value="Thu" name="dia"/>
Vie<input type="checkbox" value="Fri" name="dia"/>
Sáb<input type="checkbox" value="Sat" name="dia"/>
</div>
</div>
<br/>
<br/>
<input type="submit" value="Registrar" onClick="return validaFecha(this.form );"/>
</form>


