Tengo un problemilla con mi código, el cual me compara un par de fechas y horas que estén en un input dentro de un formulario.
El funcionamiento que quiero es que cuando se pulsa el botón de envío quiero que me compare los casos:
Si fecha1 > fecha2 muestra un alert y no deja continuar el envió del formulario
Si fecha1 < fecha2 pasa a la siguiente función de compara horas
Si hora1 > hora2 muestra un alert y no deja continuar el envió del formulario
Si hora1 < hora2 envía los datos por POST(preferiblemente)
Pues bien, hasta el 3 caso me funciona bien, pero cuando intento incorporar el siguiente caso para que haga el envío de los datos del formulario. Todo se trastoca y aunque muestra los alerts, se envía el formulario, impidiendo que funcione el control de fechas y horas.
Aqui mi script:
Código:
Y aqui mi formulario:<script> function compararHora() { var hora1 = document.getElementById("hora_inicio").value; var hora2 = document.getElementById("hora_final").value; var horaSep = hora1.split(':'); var horaSep2 = hora2.split(':'); if(horaSep > horaSep2){ alert('estoy aqui'); Alert.render('La <b>HORA FINAL</b> debe ser siempre <b>SUPERIOR</b> a la hora de inicio.'); } else{ alert('tras este alert pasa los datos de form'); document.forms[formulario].submit(); } } function compararFecha(fecha1,fecha2) { var fecha1 = document.getElementById("fecha_inicio").value; var fecha2 = document.getElementById("fecha_final").value; var fechaSep = fecha1.split('-'); var fechaSep2 = fecha2.split('-'); var indicada = new Date(fechaSep[0],fechaSep[1]-1,fechaSep[2]); var indicada2 = new Date(fechaSep2[0],fechaSep2[1]-1,fechaSep2[2]); if(indicada > indicada2){ Alert.render('La <b>FECHA FINAL</b> debe ser siempre <b>SUPERIOR</b> a la fecha de inicio.'); }else{ alert('hola'); compararHora(); } } </script>
Código:
Cabe decir que las fechas las recoge el input mediante otro script de un control datepicker. Y que pasar los datos los pasa bien. Pero se salta los alerts impidiendo que se ejecute el control de fechas. Vaya, no le da a los usuarios la posibilidad de darle a OK al alert y cambiar la fecha, simplemente le envia los datos directamente.<form id="formulario" name="formulario" action="accion.php" method="post" onsubmit="return compararFecha()" > <input id="fecha_inicio" name="fecha_inicio" value="" ><input id="hora_inicio" name="hora_inicio" value=""> <input id="fecha_final" name ="fecha_final" value="" ><input id="hora_final" name="hora_final" value=""> <label for="tags">Descripción: </label> <input type="text" name="descripcion" id="descripcion" /> <input name="submit" type="submit" value="enviar"> </form>
Gracias de antemano :)