Ese javascript lamentablemente en ie no funciona, tendrías que hacer algo más complejo. Te lo dejo en php por si te sirve
Te dejo para dia mes y año, descartá lo que no te sirva
Código PHP:
Ver original<p>
<select name="dia" id="dia">
<option value="">día</option>
<?php for ($i = 1; $i <= 31 ; $i++) { ?>
<option value="<?php echo $i; ?>"><?php echo $i; ?></option>
<?php } ?>
</select>
<select name="mes" id="mes">
<option value="">mes</option>
<?php for ($i = 1; $i <= 12 ; $i++) { ?>
<option value="<?php echo $i; ?>"><?php echo $i; ?></option>
<?php } ?>
</select>
<select name="anio" id="anio">
<option value="">año</option>
<?php for ($i = 1920; $i <= 2011 ; $i++) { ?>
<option value="<?php echo $i; ?>"><?php echo $i; ?></option>
<?php } ?>
</select>
</p>
y aqui una función para determinar si la fecha es válida
Código PHP:
Ver originalfunction validarFecha($dia, $mes, $anio){
if ($dia<0 || $dia>31 || $mes<0 || $mes >12)
$valida=false;
else
if (($mes==4 || $mes==6 || $mes==9 || $mes==11) && $dia > 30)
$valida=false;
else
if ($mes==2 && $dia>28+bisiesto($anio))
$valida=false;
else
$valida=true;
return $valida;
}
function bisiesto($anio){
if ($anio%4!=0)
$bisiesto=false;
else
if ($anio%400==0)
$bisiesto=true;
else
if ($anio%100==0)
$bisiesto=false;
else
$bisiesto=true;
return $bisiesto;
}
saludos