Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/01/2008, 07:34
brainstorm
 
Fecha de Ingreso: septiembre-2005
Ubicación: España
Mensajes: 78
Antigüedad: 18 años, 8 meses
Puntos: 0
Selector de día, mes y año de faq 237 con selects con valor ""

Hola a ver sin me consigo explicar porque llevo buscando toda la mañana la manera de hacerlo y nada.

Lo que quiero es lo siguiente: utilizar el script del faq 237 (genial por cierto) pero haciendo que en vez de mostrar por defecto la fecha actual muestre los tres selects con value="" o algo del estilo a:

Código PHP:
<select name='ano'>
<
option value=''>Seleccione un día</option>
</
select>

<
select name='mes'>
<
option value=''>Seleccione un Mes</option>
</
select>

<
select name='dia'>
<
option value=''>Seleccione un Año</option>
</
select
es para despues poder validar que el usuario realmente a seleccionado su fecha de nacimiento y no que simplemente ha dado al submit con la fecha sin tocar es decir con la fecha de hoy.

2. pregunta.

Se puede hacer que el mismo script en vez de cojer las fechas desde 1960 hasta el dia de hoy, solo permita seleccionar una fecha entre 1918 y 1990, digamos asegurarse que la persona tiene entre 18 años y 90 años .


Desde ya muchas gracias.

El script:

Código PHP:
<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);
       
nMes parseInt(mes.options[mes.selectedIndex].value);
       
nDia parseInt(dia.options[dia.selectedIndex].value);
       
res.value makeDateFormat(nDianMes 1nAno);  
       break;
      case 
1:
       
nMes parseInt(mes.options[mes.selectedIndex].value);
       
llenaDia(dianAnonMes);
       
nDia parseInt(dia.options[dia.selectedIndex].value);
       
res.value makeDateFormat(nDianMes 1nAno);
       break;
      case 
2:
       
nMes parseInt(mes.options[mes.selectedIndex].value);
       
nDia parseInt(dia.options[dia.selectedIndex].value);
       
res.value makeDateFormat(nDianMes 1nAno);
       break;
      case 
3:
          
llenaMes(mesnAno);
      break;
     }
    }
   }

function 
llenaAno(oAno){
      var 
hoy = new Date();
    var 
ini 1960;
       for (var 
ini<= hoy.getYear(); i++)
     
addOpt(oAnoiniString(i), String(i));
     
oAno.options[i-ini-1].selected true;
     
cambia(3);
}

function 
llenaMes(oMesnAno){
    var 
hoy = new Date();
    var 
sel=0;
    if(
oMes.selectedIndex >=0) var sel=oMes.selectedIndex;
    var 
nFin 11;
    while (
oMes.length 0oMes.remove(0);
    if (
nAno == hoy.getYear()) 
    {
    
nFin hoy.getMonth();
    } 
    if (
sel>nFin)
        {
            
sel=nFin-1;
        }  
    for (var 
0<= nFini++)
     
addOpt(oMesiaMeses[i], String(i));
     
oMes.options[sel].selected true;
     
cambia(1);
   }

function 
llenaDia(oDianAnonMes){
    var 
hoy = new Date();
    var 
sel=0;
    if(
oDia.selectedIndex >=0) var sel=oDia.selectedIndex;
    var 
nFin lastDayOfMonth(nMes 1nAno);
    while (
oDia.length 0oDia.remove(0);
     if (
nAno == hoy.getYear() && nMes == hoy.getMonth()) 
    {
    
nFin hoy.getDate();
    }
    if(
sel>nFin)
        {
            
sel=nFin-1;
        }
    for (var 
1<= nFini++)
     
addOpt(oDiaiString(i), String(i));
        
oDia.options[sel].selected true;
   }

  
</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>