Foros del Web » Programando para Internet » Javascript »

Funciones y alerts !!!!!! ayuda

Estas en el tema de Funciones y alerts !!!!!! ayuda en el foro de Javascript en Foros del Web. Hola, tengo una preguntota, miren, tengo un codigo enorme de 3000 lineas, entonces note que hay una parte donde se repite tres veces un codigo ...
  #1 (permalink)  
Antiguo 17/04/2007, 18:24
 
Fecha de Ingreso: mayo-2006
Mensajes: 215
Antigüedad: 18 años
Puntos: 0
Funciones y alerts !!!!!! ayuda

Hola, tengo una preguntota, miren, tengo un codigo enorme de 3000 lineas, entonces note que hay una parte donde se repite tres veces un codigo que valida fechas, lo que hice fue meterlo a una funcion, y ahora, donde estaba ese codigo, mando llamar la funcion:
fechas();

Pero el detalle, es que probe los dos codigos, el optimizado y el que esta todo regado, y en el codigo anterior, cuando me aparece un mensaje de alerta de fechas, doy aceptar al mensaje y me deja en esa pagina.

Pero ahora con el nuevo codigo (el optimizado), al parecer funciona bien, pero cuando me aparece el mensaje de alerta de las fechas, doy click en aceptar y parece que envia la consulta, es decir, acepto el alert, y se ve como un submit, algo asi. Y no deberia hacerlo, si me manda mensaje d error en las fechas, acepto y deberia dejarme en esa pagina.

Que me falta, algun return? o algo en la llamada? o ke?? ayuda porfavorrrrrrrr

function fechas()
{
var mifecha
var mydate=new Date();
var year=mydate.getYear();
if (year < 1000)
year+=1900;
var day=mydate.getDay();
var month=mydate.getMonth()+1;
if (month<10)
month="0"+month;
var daym=mydate.getDate();
if (daym<10)
daym="0"+daym;

var hora=mydate.getHours();
if (hora<10)
hora="0"+hora;
var minu=mydate.getMinutes();
if (minu<10)
minu="0"+minu;
var segu=mydate.getSeconds();
if (segu<10)
segu="0"+segu;

mifecha=daym+"/"+month+"/"+year+" "+hora+":"+minu+":"+segu;

diafi=document.form1.fi.value.substring(0,2);
mesfi=document.form1.fi.value.substring(3,5);
anyofi=document.form1.fi.value.substring(6,10);
horafi=document.form1.fi.value.substring(11,13);
minfi=document.form1.fi.value.substring(14,16);
diaff=document.form1.ff.value.substring(0,2);
mesff=document.form1.ff.value.substring(3,5);
anyoff=document.form1.ff.value.substring(6,10);
horaff=document.form1.ff.value.substring(11,13);
minff=document.form1.ff.value.substring(14,16);
diact=mifecha.substring(0,2);
mesact=mifecha.substring(3,5);
anyoact=mifecha.substring(6,10);
horact=mifecha.substring(11,13);
minact=mifecha.substring(14,16);

if (diafi == "08") // parseInt("08") == 10 base octogonal
diafi = "8";
if (diafi == '09') // parseInt("09") == 11 base octogonal
diafi = "9";
if (mesfi == "08") // parseInt("08") == 10 base octogonal
mesfi = "8";
if (mesfi == "09") // parseInt("09") == 11 base octogonal
mesfi = "9";
if (horafi == "08") // parseInt("08") == 10 base octogonal
horafi = "8";
if (horafi == "09") // parseInt("09") == 11 base octogonal
horafi = "9";
if (minfi == "08") // parseInt("08") == 10 base octogonal
minfi = "8";
if (minfi == "09") // parseInt("09") == 11 base octogonal
minfi = "9";

if (diaff == "08") // parseInt("08") == 10 base octogonal
diaff = "8";
if (diaff == '09') // parseInt("09") == 11 base octogonal
diaff = "9";
if (mesff == "08") // parseInt("08") == 10 base octogonal
mesff = "8";
if (mesff == "09") // parseInt("09") == 11 base octogonal
mesff = "9";
if (horaff == "08") // parseInt("08") == 10 base octogonal
horaff = "8";
if (horaff == "09") // parseInt("09") == 11 base octogonal
horaff = "9";
if (minff == "08") // parseInt("08") == 10 base octogonal
minff = "8";
if (minff == "09") // parseInt("09") == 11 base octogonal
minff = "9";

if (diact == "08") // parseInt("08") == 10 base octogonal
diact = "8";
if (diact == '09') // parseInt("09") == 11 base octogonal
diact = "9";
if (mesact == "08") // parseInt("08") == 10 base octogonal
mesact = "8";
if (mesact == "09") // parseInt("09") == 11 base octogonal
mesact = "9";
if (horact == "08") // parseInt("08") == 10 base octogonal
horact = "8";
if (horact == "09") // parseInt("09") == 11 base octogonal
horact = "9";
if (minact == "08") // parseInt("08") == 10 base octogonal
minact = "8";
if (minact == "09") // parseInt("09") == 11 base octogonal
minact = "9";

diafi=parseInt(diafi);
diaff=parseInt(diaff);
diact=parseInt(diact);
mesfi=parseInt(mesfi);
mesff=parseInt(mesff);
mesact=parseInt(mesact);
anyofi=parseInt(anyofi);
anyoff=parseInt(anyoff);
anyoact=parseInt(anyoact);
horafi=parseInt(horafi);
horaff=parseInt(horaff);
horact=parseInt(horact);
minfi=parseInt(minfi);
minff=parseInt(minff);
minact=parseInt(minact);

if ((!document.form1.fi.value) || (!document.form1.ff.value))
{
alert('Inserte las fechas a consultar.');
return 0;
}
if ((anyofi>anyoact) || (anyoff>anyoact))
{
alert('La fecha de inicio o termino no puede ser superior a la fecha del sistema.');
return 0;
}
if (((anyofi==anyoact) || (anyoff==anyoact)) && ((mesfi>mesact) || (mesff>mesact)))
{
alert('La fecha de inicio o termino no puede ser superior a la fecha del sistema.');
return 0;
}
if ((anyofi>anyoff))
{

alert('Fecha de inicio no puede ser superior a la fecha de termino.');
return 0;
}
if ((anyofi==anyoff) && (mesfi>mesff))
{
alert('Fecha de inicio no puede ser superior a la fecha de termino.');
return 0;
}
if ((anyofi==anyoff) && (mesfi==mesff) && (diafi>diaff))
{
alert('Fecha de inicio no puede ser superior a la fecha de termino.');
return 0;
}
if ((anyofi==anyoff) && (mesfi==mesff) && (diafi==diaff) && (horafi>horaff))
{
alert('Fecha de inicio no puede ser superior a la fecha de termino.');
return 0;
}
if ((anyofi==anyoff) && (mesfi==mesff) && (diafi==diaff) && (horafi==horaff) && (minfi>minff))
{
alert('Fecha de inicio no puede ser superior a la fecha de termino.');
return 0;
}
}
</script>
  #2 (permalink)  
Antiguo 18/04/2007, 16:41
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Funciones y alerts !!!!!! ayuda

Un consejillo para tu código (un poco mostruoso). Podrías sustituir
Código PHP:
if (diafi == "08"// parseInt("08") == 10 base octogonal
diafi "8";
if (
diafi == '09'// parseInt("09") == 11 base octogonal
diafi "9";
if (
mesfi == "08"// parseInt("08") == 10 base octogonal
mesfi "8";
if (
mesfi == "09"// parseInt("09") == 11 base octogonal
mesfi "9";
if (
horafi == "08"// parseInt("08") == 10 base octogonal
horafi "8";
if (
horafi == "09"// parseInt("09") == 11 base octogonal
horafi "9";
if (
minfi == "08"// parseInt("08") == 10 base octogonal
minfi "8";
if (
minfi == "09"// parseInt("09") == 11 base octogonal
minfi "9";

if (
diaff == "08"// parseInt("08") == 10 base octogonal
diaff "8";
if (
diaff == '09'// parseInt("09") == 11 base octogonal
diaff "9";
if (
mesff == "08"// parseInt("08") == 10 base octogonal
mesff "8";
if (
mesff == "09"// parseInt("09") == 11 base octogonal
mesff "9";
if (
horaff == "08"// parseInt("08") == 10 base octogonal
horaff "8";
if (
horaff == "09"// parseInt("09") == 11 base octogonal
horaff "9";
if (
minff == "08"// parseInt("08") == 10 base octogonal
minff "8";
if (
minff == "09"// parseInt("09") == 11 base octogonal
minff "9";

if (
diact == "08"// parseInt("08") == 10 base octogonal
diact "8";
if (
diact == '09'// parseInt("09") == 11 base octogonal
diact "9";
if (
mesact == "08"// parseInt("08") == 10 base octogonal
mesact "8";
if (
mesact == "09"// parseInt("09") == 11 base octogonal
mesact "9";
if (
horact == "08"// parseInt("08") == 10 base octogonal
horact "8";
if (
horact == "09"// parseInt("09") == 11 base octogonal
horact "9";
if (
minact == "08"// parseInt("08") == 10 base octogonal
minact "8";
if (
minact == "09"// parseInt("09") == 11 base octogonal
minact "9";

diafi=parseInt(diafi);
diaff=parseInt(diaff);
diact=parseInt(diact);
mesfi=parseInt(mesfi);
mesff=parseInt(mesff);
mesact=parseInt(mesact);
anyofi=parseInt(anyofi);
anyoff=parseInt(anyoff);
anyoact=parseInt(anyoact);
horafi=parseInt(horafi);
horaff=parseInt(horaff);
horact=parseInt(horact);
minfi=parseInt(minfi);
minff=parseInt(minff);
minact=parseInt(minact); 
Por un parseInt con el parametro que le dice sobre qué base estás trabajando:
Código PHP:
n=parseInt("08",10); 
Y así n valdrá 8.


Otra cosita... en vez de
var year=mydate.getYear();
utiliza getFullYear(), es el estándar y no te dará problemas con el +1900..



Acerca de tu duda, en tu formulario:
<form onsubmit="return funcion()">
Si funcion retorna true el submit se ejecutará; de lo contrario se quedará en la misma página. Revisa si eso puede ser...



Y un apunte más... para comparar fechas quizás te venga mejor un getTime() del objeto Date()... lo conviertes todo a un objeto Date() (creo que más fácil) y luego los comparas...


Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:07.