No va a hacer falta, vamos a continuar en este hilo. Este es el código que he conseguido desarrollar tras un montón de intentos xD:
Código Javascript
:
Ver original<script type='text/javascript'>
var meses = new Array('Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre');
var dias = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var diasBis = new Array(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var bis;
function ID(id){
return document.getElementById(id);
}
function rellenarAnio(an){
var a = ID(an);
a.options.length = 100;
for(i = 0; i<100; i++){
a.options[i].value = parseInt(1950 + i);
a.options[i].text = parseInt(1950 + i);
}
bis = (a.options[a.selectedIndex].value%4 == 0) ? diasBis : dias;
}
function rellenarMes(mes){
var m = ID(mes);
m.options.length = 12;
for (i = 0; i<12; i++){
m.options[i].value = i;
m.options[i].text = meses[i];
}
}
function rellenarDia(dia, hermano){
var d = ID(dia);
d.disabled = false;
var h = ID(hermano);
d.options.length = bis[h.selectedIndex];
for (i = 0; i<bis[h.selectedIndex]; i++){
d.options[i].value = parseInt(i + 1);
d.options[i].text = parseInt(i + 1);
}
}
function todo(){
rellenarAnio('anio');
rellenarAnio('anio2');
rellenarMes('mes');
rellenarMes('mes2');
rellenarDia('dia', 'mes');
rellenarDia('dia2', 'mes2');
}
function comprobar(frm){
var fechaPedido = new Date(ID('anio').value, ID('mes').value, ID('dia').value);
var fechaEntrega = new Date(ID('anio2').value, ID('mes2').value, ID('dia2').value);
if ((fechaEntrega.getTime() - fechaPedido.getTime())/86400000 < 2){
alert('Entre las dos fechas debe haber por lo menos 2 días');
return false;
}
return true;
}
</script>
Código HTML:
Ver original<form id='miForm' action='#' method='post' onsubmit='return comprobar(this);'> Actual:
Año:
<select id='anio' onchange='bis = (this.value%4 == 0) ? diasBis : dias;'>Mes:
<select id='mes' onchange="rellenarDia('dia', this.id);">Día:
<select id='dia' disabled='disabled'>Fecha de entrega:
Año:
<select id='anio2' onchange='rellenarAnio(this.id);'>Mes:
<select id='mes2' onchange="rellenarDia('dia2', this.id);">Día:
<select id='dia2' disabled='disabled'><input type='submit' value="Enviar" />
El único problema que hay, o el único que yo veo, es que si pones un año bisiesto y en el mes pones febrero, te salen 29 días, pero si cambias de año febrero sigue ya tiene 28 días. Es un poco incómodo pero no sé cómo solucionarlo, si alguien con más experiencia que yo sabe cómo hacerlo que postee por favor, me he quedado con la duda
. Espero que te sirva.
Saludos (: