Foros del Web » Programando para Internet » Javascript »

Ayuda con un select de fecha

Estas en el tema de Ayuda con un select de fecha en el foro de Javascript en Foros del Web. Hola a todos, necesito una ayuda con unos select, resulta q necesito validar q los usuarios no introduzcan fechas superiores a la actual. Necesito q ...
  #1 (permalink)  
Antiguo 19/02/2003, 10:08
Avatar de Dheymer  
Fecha de Ingreso: noviembre-2002
Ubicación: Porlamar, Venezuela
Mensajes: 87
Antigüedad: 21 años, 5 meses
Puntos: 0
Ayuda con un select de fecha

Hola a todos, necesito una ayuda con unos select, resulta q necesito validar q los usuarios no introduzcan fechas superiores a la actual.

Necesito q el select del año se llene hasta el año actual. Dependiendo del valor dl año, el select d los meses se llene completo o hasta el mes actual si es el año n curso. Dependiendo de los valores d mes y año, q el select d los días se llene hasta 30, 31, 28, 29 ó hasta la fecha actual, según sea el caso.

Necesito ayuda con esto, es urgente :neurótico
  #2 (permalink)  
Antiguo 20/02/2003, 12:14
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Hola Dheymer, espero que no sea demasiado tarde para la ayuda que pedías. Revisa esto por favor:


Código PHP:
<html>
 <
head>
  <
script language="JavaScript">

   var 
aMeses = new Array("Enero""Febrero""Marzo""Abril""Mayo""Junio""Julio""Agosto""Septiembre""Octubre""Noviembre""Diciembre")

   function 
padNmb(nStrnLensChr){
    var 
sRes String(nStr);
    for (var 
0nLen String(nStr).lengthi++)
     
sRes sChr sRes;
    return 
sRes;
   }

   function 
makeDateFormat(nDaynMonthnYear){
    var 
sRes;
    
sRes padNmb(nDay2"0") + "/" padNmb(nMonth2"0") + "/" padNmb(nYear4"0");
    return 
sRes;
   }
   
   function 
addOpt(oCntrliPossTxtsVal){
    var 
selOpcion = new Option(sTxtsVal);
    
oCntrl.options.add(selOpcioniPos);
   }

   function 
lastDayOfMonth(nMonthnYear){
    var 
aMonth = new Array(312831303130313130313031);
    if ((
nMonth == 2) && (nYear == 0))
     return 
29;
    else
     return 
aMonth[nMonth 1];
   }

   function 
cambia(nCambiado){
    var 
nAno;
    var 
nMes;
    
with (document.frm){
     
nAno parseInt(ano.options[ano.selectedIndex].value);
     switch (
nCambiado){
      case 
0:
       
llenaMes(mesnAno);
       break;
      case 
1:
       
nMes parseInt(mes.options[mes.selectedIndex].value);
       
llenaDia(dianAnonMes)
       break;
      case 
2:
       
nMes parseInt(mes.options[mes.selectedIndex].value);
       
nDia parseInt(dia.options[dia.selectedIndex].value);
       
res.value makeDateFormat(nDianMes 1nAno);
       break;
     }
    }
   }

   function 
llenaAno(oAno){
    var 
hoy = new Date();
    var 
ini 1960;
    
addOpt(oAno0"""");
    for (var 
ini<= hoy.getYear(); i++)
     
addOpt(oAnoini 1String(i), String(i));
   }

   function 
llenaMes(oMesnAno){
    var 
hoy = new Date();
    var 
nFin 11;
    while (
oMes.length 0oMes.remove(0);
    if (
nAno == hoy.getYear()) nFin hoy.getMonth();
    
addOpt(oMes0"""");
    for (var 
0<= nFini++)
     
addOpt(oMes1aMeses[i], String(i));
   }

   function 
llenaDia(oDianAnonMes){
    var 
hoy = new Date();
    var 
nFin lastDayOfMonth(nMes 1nAno);
    while (
oDia.length 0oDia.remove(0);
    if (
nAno == hoy.getYear() && nMes == hoy.getMonth()) nFin hoy.getDate();
    
addOpt(oDia0"""");
    for (var 
1<= nFini++)
     
addOpt(oDia1String(i), String(i));
   }

  
</script>
 </head>
 <body onload=" llenaAno(document.frm.ano)">
  <form name="frm">
   <table border="0">
    <tr>
     <td align="right">
      Año: 
     </td>
     <td>
      <select name="ano" onchange="cambia(0)" style="width: 80">
      </select>
     </td>
    </tr>
    <tr>
     <td align="right">
      Mes: 
     </td>
     <td>
      <select name="mes" onchange="cambia(1)" style="width: 80">
      </select>
     </td>
    </tr>
    <tr>
     <td align="right">
      Día: 
     </td>
     <td>
      <select name="dia" onchange="cambia(2)" style="width: 80">
      </select>
     </td>
    </tr>
    <tr>
     <td align="right">
      Fecha:
     </td>
     <td>
      <input type="text" name="res" disabled>
     </td>
    </tr>
   </table>
  </form>
 </body>
</html> 
Saludos compatriota.
  #3 (permalink)  
Antiguo 20/02/2003, 12:38
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Yo tb te he respondido...

Bueno... que sorpresa al ver que el magnífico Kao (hola Kao!!) ya había respondido... como es largo el código ya a pesar que el de Kao es mejor pues lo pongo como testimonio de que yo tb quería ayudar!!

Un saludo

Código PHP:

<html>
<
head>
    <
title>Fechitas</title>
    
    <
script>
    var 
anio
    
var mees
    
//febrero 2003: el mes de las fechas.
    
chicaDeAyer=[31,28,31,30,31,30,31,31,30,31,30,31];
    
cancionDe1981=["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiempre","octubre","noviembre","diciembre"]
    var 
unDiaCualquieraNoSabesQueHoraEs=new Date();
    var 
teAcuestasAMiLadoSinSaberPorque=unDiaCualquieraNoSabesQueHoraEs.getYear();
    var 
lasCallesMojadasTeHanVistoCrecer=unDiaCualquieraNoSabesQueHoraEs.getMonth();
    var 
yTuEnTuCorazonEstasLlorandoOtraVez=unDiaCualquieraNoSabesQueHoraEs.getDate();
    var 
chicaVeteATuCasaNoPodemosJugar
    
var jugandoConLasFloresDeMiJardin
    
    
function dias(mes){
jugandoConLasFloresDeMiJardin=""
    
mes=mes-1;
    if (
mes==lasCallesMojadasTeHanVistoCrecer&&anio==teAcuestasAMiLadoSinSaberPorque){dia=yTuEnTuCorazonEstasLlorandoOtraVez}
    else {
dia=chicaDeAyer[mes]}
    for (
meAsomoALaVentanaEresLaChicaDeAyer=1;meAsomoALaVentanaEresLaChicaDeAyer<dia+1;meAsomoALaVentanaEresLaChicaDeAyer++){
    if(!
jugandoConLasFloresDeMiJardin){jugandoConLasFloresDeMiJardin='<select name="dia" size="1"><option value="--">--</option>'}
    
jugandoConLasFloresDeMiJardin=jugandoConLasFloresDeMiJardin+'<option value="'+meAsomoALaVentanaEresLaChicaDeAyer+'">'+meAsomoALaVentanaEresLaChicaDeAyer+'</option>'
    
}
    
jugandoConLasFloresDeMiJardin=jugandoConLasFloresDeMiJardin+'</select>'
    
diita.innerHTML=jugandoConLasFloresDeMiJardin
    
}
    
    function 
meses(anio2){
    
chicaVeteATuCasaNoPodemosJugar=""
    
anio=anio2
    
if (anio==teAcuestasAMiLadoSinSaberPorque){
    
mees=lasCallesMojadasTeHanVistoCrecer+1}
    else {
mees=12;}
    for (
demasiadoTardeParaComprender=0;demasiadoTardeParaComprender<mees;demasiadoTardeParaComprender++){
    if(!
chicaVeteATuCasaNoPodemosJugar){chicaVeteATuCasaNoPodemosJugar='<select onchange="dias(this.selectedIndex)" name="mes" size="1"><option value="--">--</option>'}
    
chicaVeteATuCasaNoPodemosJugar=chicaVeteATuCasaNoPodemosJugar+'<option value="'+demasiadoTardeParaComprender+'">'+cancionDe1981[demasiadoTardeParaComprender]+'</option>';
    }
    
chicaVeteATuCasaNoPodemosJugar=chicaVeteATuCasaNoPodemosJugar+'</select>'
    
mesecito.innerHTML=chicaVeteATuCasaNoPodemosJugar
    
}
    
    function 
empezar(){
    
tusCabellosDoradosParecenElSol=""
        
for (laLuzDeLaManianaEntraEnLaHabitacion=teAcuestasAMiLadoSinSaberPorque;laLuzDeLaManianaEntraEnLaHabitacion>1940;laLuzDeLaManianaEntraEnLaHabitacion--){
    
    if(!
tusCabellosDoradosParecenElSol){var tusCabellosDoradosParecenElSol='<select onchange="meses(this.value)" name="anio" size="1"><option value="--">--</option>'}
    
tusCabellosDoradosParecenElSol=tusCabellosDoradosParecenElSol+'<option value="'+laLuzDeLaManianaEntraEnLaHabitacion+'">'+laLuzDeLaManianaEntraEnLaHabitacion+'</option>';
    }
    
tusCabellosDoradosParecenElSol=tusCabellosDoradosParecenElSol+'</select>'
    
anito.innerHTML=tusCabellosDoradosParecenElSol;
    }
    
    
</script>
</head>

<body onload="empezar()">
<form action="AntonioVega" name="NachaPop" id="NachaPop">

<table><tr><td><div id=diita><select name="" disabled><option>--</option>
</select></div></td><td><div id=mesecito><select name="" disabled><option>------------</option>
</select></div></td><td><div id=anito></div></td></tr></table>


</form>


</body>
</html> 
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #4 (permalink)  
Antiguo 20/02/2003, 14:29
Avatar de Dheymer  
Fecha de Ingreso: noviembre-2002
Ubicación: Porlamar, Venezuela
Mensajes: 87
Antigüedad: 21 años, 5 meses
Puntos: 0
Gracias a los dos, algo como eso era lo q estaba buscando
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 22:38.