Hola a todos gente del foro! Cómo están? Espero que muy bien!
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:
<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>
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
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:
<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>
Espero me puedan ayudar, gracias por su atención!