La Web del Programador: Comunidad de Programadores
 
    Pregunta:  57127 - FUNCION JAVA ANTES DE FUNCION JAVASCRIPT
Autor:  Sonia Perez
Hola amigos!!
Tengo un problema. Tengo un formulario que cuando hago el submit va a una función javascript que me valida los campos del mismo. Esto funciona perfectamente pero, necesito comprobar que la fecha introducida no supera en 5 días a la fecha actual y para ello uso métodos java así que, esta función necesito que se ejecute antes de llamar a la de javascript puesto que sino, ya no se ejecutará nunca al ejecutarse javascript en el cliente y java en el servidor.¿Cómo debo hacerlo?Muchas gracias!!

Aquí les pongo también el código de la función Java por si ven algo que esté mal:

function Fecharmaxima (formulario)
{
//Obtengo una instancia de Gregorian Calendar
Calendar ahora=Calendar.getInstance();

//Obtengo la fecha actual
long miliseg=ahora.getTime();

//Sumo 5 días a la fecha actual
miliseg=ahora.add(Calendar.DATE,5);

//Compruebo que la fecha introducida no sea mayor que (la actual +5)
if(formulario.fecha.value<=miliseg)
return true;
else
alert("Sólo se aceptan fechas 5 días posteriores a la actual");
return false;
}

  Respuesta:  Omar Hernandez
Esta bien el código si estas usando mvc, entonces si necesitarías validar a nivel usuario es decir en el js ya que al hacer el submit no se podría entonces en mi opinión seria antes del submit mira en js seria algo asi:

function Fecharmaxima (Fecha) {
var fechaIntroducida=eval("'#" + Fecha + "'");
//Obtengo la fecha actual
var fecha =new Date();
var fechaValida = fecha.setDate(fecha.getDate()+5);


//Compruebo que la fecha introducida no sea mayor que (la actual +5)
if( $('#fechaIntroducida').val() <= fechaValida) {
// en vez de return true;
//podrias meter el submit aqui.
}else{
alert("Sólo se aceptan fechas 5 días posteriores a la actual");
$('#fechaIntroducida').focus();
//donde fechaIntroducida podria ser el input
}
}