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>