Foros del Web » Programando para Internet » Javascript »

problemas de codigo

Estas en el tema de problemas de codigo en el foro de Javascript en Foros del Web. Hola, tengo un problema al parecer de sintaxis en un IF de javascript.......funciona una parte bien pero cuando empiezo a jugar con la variables no ...
  #1 (permalink)  
Antiguo 13/08/2008, 16:18
 
Fecha de Ingreso: mayo-2008
Mensajes: 2
Antigüedad: 15 años, 11 meses
Puntos: 0
problemas de codigo

Hola, tengo un problema al parecer de sintaxis en un IF de javascript.......funciona una parte bien pero cuando empiezo a jugar con la variables no me funciona, este es el codigo
function valFecha(oTxt, f1, f2)
{
var bOk = true;
var di,mi,ai,df,mf,af,d,m,a;

if (oTxt.value != "")
{
bOk = bOk && (valAno(oTxt));
bOk = bOk && (valMes(oTxt));
bOk = bOk && (valDia(oTxt));
bOk = bOk && (valSep(oTxt));



if (!bOk)
{
alert("Fecha inválida")
oTxt.value = ""
oTxt.focus()
return false
}
else
{
di= parseInt(f1.value.substr(0, 2), 10);
mi= parseInt(f1.value.substr(3, 2), 10)
ai = f1.value.substr(6)
df= parseInt(f2.value.substr(0, 2), 10)
mf= parseInt(f2.value.substr(3, 2), 10)
af = f2.value.substr(6)
d= parseInt(oTxt.value.substr(0, 2), 10)
m= parseInt(oTxt.value.substr(3, 2), 10)
a = oTxt.value.substr(6)
if ( (di <= d) and (mi=m) and (ai=a))
{
if ((df >= d) and (mi<=m) and (m<=mf) and (ai<=a) and (a<=af))
{
return true;
}
else
{
alert("FECHA NO CORRESPONDE AL PERIODO DE VISITA");
}
}
else
{
if ((df>=d) and (mi<=m) and (m<=mf) and (ai<=a) and (a<=af))
{
return true;
}
else
{
alert("FECHA NO CORRESPONDE AL PERIODO DE VISITA");
}
}
}

}

}

Donde oTxt, f1 y f2 son fechas con el formato "dd-mm-aaaa" y quiero hacer que muestre un mensaje cuando oTxt no esté dentro del rango de fechas dado por f1 y f2. Me he dado cuenta que cuando empieza a desglozar las fechas desconoce lo que sigue hacia abajo...
agradecido de ante mano
  #2 (permalink)  
Antiguo 13/08/2008, 16:23
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: problemas de codigo

Estos tres if están mal:
Código PHP:
if ( (di <= d) and (mi=m) and (ai=a)) {
if ((
df >= d) and (mi<=m) and (m<=mf) and (ai<=a) and (a<=af)) {
if ((
df>=d) and (mi<=m) and (m<=mf) and (ai<=a) and (a<=af)) 
El operador and en Javascript es &&.
Prueba reemplazando por:
Código PHP:
if (di<=&& mi=&& ai=a) {
if (
df>=&& mi<=&& m<=mf && ai<=&& a<=af) {
if (
df>=&& mi<=&& m<=mf && ai<=&& a<=af) { 
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 13/08/2008, 16:37
 
Fecha de Ingreso: mayo-2008
Mensajes: 2
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: problemas de codigo

hice la modificación

function valFecha(oTxt, f1, f2)
{
var bOk = true;
var di,mi,ai,df,mf,af,d,m,a;

if (oTxt.value != "")
{
bOk = bOk && (valAno(oTxt));
bOk = bOk && (valMes(oTxt));
bOk = bOk && (valDia(oTxt));
bOk = bOk && (valSep(oTxt));



if (!bOk)
{
alert("Fecha inválida")
oTxt.value = ""
oTxt.focus()
return false
}
else
{
//alert("pasamos por aqui")
di= parseInt(f1.value.substr(0, 2), 10);
mi= parseInt(f1.value.substr(3, 2), 10)
ai = f1.value.substr(6)
df= parseInt(f2.value.substr(0, 2), 10)
mf= parseInt(f2.value.substr(3, 2), 10)
af = f2.value.substr(6)
d= parseInt(oTxt.value.substr(0, 2), 10)
m= parseInt(oTxt.value.substr(3, 2), 10)
a = oTxt.value.substr(6)
if ( di<=d && mi=m && ai=a)
{
if (df>=d && mi<=m && m<=mf && ai<=a && a<=af)
{
return false;
}
else
{
alert("FECHA NO CORRESPONDE AL PERIODO DE VISITA");
}
}
else
{
if (df>=d && mi<=m && m<=mf && ai<=a && a<=af)
{
return false;
}
else
{
alert("FECHA NO CORRESPONDE AL PERIODO DE VISITA");
}
}
}

}

}

pero ahora cuando ingreso una fecha mala......ni siquiera me aparece el mensaje del IF

if (!bOk)
{
alert("Fecha inválida")
oTxt.value = ""
oTxt.focus()
return false
}
y si pongo un alert antes de desglozar las fechas

//alert("pasamos por aqui")
di= parseInt(f1.value.substr(0, 2), 10);
mi= parseInt(f1.value.substr(3, 2), 10)
ai = f1.value.substr(6)
df= parseInt(f2.value.substr(0, 2), 10)
mf= parseInt(f2.value.substr(3, 2), 10)
af = f2.value.substr(6)
d= parseInt(oTxt.value.substr(0, 2), 10)
m= parseInt(oTxt.value.substr(3, 2), 10)
a = oTxt.value.substr(6)
muestra ese alert......si lo pongo despues no lo muestra
gracias de todos modos
  #4 (permalink)  
Antiguo 14/08/2008, 02:03
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problemas de codigo

Mal:
Código:
			if ( (di <= d) && (mi=m) && (ai=a))
Bien:
Código:
			if ( (di <= d) && (mi==m) && (ai==a))
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 20:03.