Ciao a tutti,

sto sperimentando uno script per ottenere una data valida tramite la selezione di 3 <select><option>, le quali comprendono mese, giorno e anno.

La pagina html che include le funzioni è la seguente:
codice:
<html>
<head><title></title>
<script language=JavaScript1.1 type="text/javascript" src="automaticDate.js">
</script>
<BODY>

<FORM name="registration_form">

<h1 align=center>JavaScript date selector</h1>




<table align="center">
<tr>
<td>
<SCRIPT>fill_select(document.registration_form);year_install(document.registration_form)</script></td>
</tr></table>

</FORM>

</body>
</html>
mentre lo script .js che include è il seguente:
codice:
var date_arr = new Array;
var bday_arr = new Array;

date_arr[0]=new Option("1",31);
date_arr[1]=new Option("2",28);
date_arr[2]=new Option("3",31);
date_arr[3]=new Option("4",30);
date_arr[4]=new Option("5",31);
date_arr[5]=new Option("6",30);
date_arr[6]=new Option("7",31);
date_arr[7]=new Option("8",31);
date_arr[8]=new Option("9",30);
date_arr[9]=new Option("10",31);
date_arr[10]=new Option("11",30);
date_arr[11]=new Option("12",31);



function fill_select(f)
{
        document.writeln("<SELECT name=\"bmonth\"  onchange=\"update_bday(registration_form)\">");
	document.writeln("<OPTION value=\"-1\">Mese :</option>");
        for(x=0;x<12;x++)
		
                document.writeln("<OPTION value=\""+date_arr[x].value+"\">"+date_arr[x].text);
        document.writeln("</SELECT><SELECT name=\"bday\"><OPTION value=\"-1\">Giorno :</option></SELECT>");
        selection=f.bmonth[f.bmonth.selectedIndex].value;
}

function update_bday(f)
{
	
        temp=f.bday.selectedIndex;
        for(x=bday_arr.length;x>0;x--)
        {
                bday_arr[x]=null;
                f.bday.options[x]=null;
         }
        selection=parseInt(f.bmonth[f.bmonth.selectedIndex].value);
        ret_val = 0;
        if(f.bmonth[f.bmonth.selectedIndex].value == 28)
        {
                year=parseInt(f.byear.options[f.byear.selectedIndex].value);
                if (year % 4 != 0 || year % 100 == 0 ) ret_val=0;
                else
                        if (year % 400 == 0)  ret_val=1;
                        else
                                ret_val=1;
        }
        selection = selection + ret_val;
        for(x=1;x < selection+1;x++)
        {
                bday_arr[x-1]=new Option(x);
                f.bday.options[x-1]=bday_arr[x-1];
        }
        if (temp == -1) f.bday.options[0].selected=true;
        else
             f.bday.options[temp].selected=true;
}
function year_install(f)
{
        document.writeln("<SELECT name=\"byear\" onchange=\"update_bday(registration_form)\">");
	document.writeln("<OPTION value=\"-1\">Anno :</option>");
        for(x=1905;x<2012;x++) 
		document.writeln("<OPTION value=\""+x+"\">"+x);
        	document.writeln("</SELECT>");
        	update_bday(f);
	  
}
il codice principale è presente in questa pagina web http://javascript.internet.com/time-...-selector.html

Di mio ho modificato il fatto di ottenere di default al caricamento della pagina le voci mese: giorno: anno:
Alle quali seguono poi i valori numerici di giorno, mese(prima era una stringa) e anno (dal 1905 al 2011), il tutto funziona discretamente bene.. ma..

i problemi che vorrei risolvere sono:
1) Se non si seleziona per primo il mese o l'anno, la select dei giorni non presenta nessuna opzione, rimane vuota finchè non si seleziona uno dei due.
2) Fra la select giorno: anno: viene stampato uno spazio vuoto che distanzia le due select

A parte questi due problemi il codice funziona a dovere, mi chiedo come si possano risolvere, anche perchè non ho molto tempo da impiegarci purtroppo...

grazie a tutti in anticipo!