Salve a tutti,
sono nuovo di questo forum, premetto che non ho trovato la sezione di presentazione quindi questo è il mio primo messaggio.

Faccio intanto i miei complimenti, poichè la maggior parte delle volte che faccio una ricerca su google vengo a finire nei vostri post.

Volevo proporre il mio problema. Sto cercando di creare una validazione di un form (client side) con la libreria LiveValidation. Ho visto che è una libreria semplice da utilizzare per i principianti in javascript come me. L'unica cosa che manca è il controllo della data, così ho provveduto a fare una funzione con un contorno di javascript attorno ai metodi della libreria.
qui in basso c'è la funzione che ho scritto ma non funziona bene.
o meglio funziona solo per il "30 o 31 febbraio 1995"( ma non sempre forse anche qualche altro anno)
se qualcuno di buona volontà volesse darci un'occhiata ho messo la pagina online
codice:
http://webprogaa101117.zxq.net/members_area.html
più in basso ho messo anche il codice html del form

info:
ho messo sia "onchange" ai <select> che "onclick" al pulsante per far eseguire la funzione "apertura()"
nella funzione "apertura()" le righe che lanciano gli "alert" sono commentate per evitare rotture di scatole continue.
con gli alert l'algoritmo funziona perfettamente.

Grazie a chiunque mi risponderà.

<script type="text/javascript" >

function apertura() {
var day=document.registrazione.giorno.value;
var month=document.registrazione.mese.value;
var year=document.registrazione.anno.value;

var giorno = new LiveValidation('giorno', { validMessage: "OK!" });
giorno.add( Validate.Numericality, { minimum: 1, tooLowMessage: "inserire il giorno"} );

var mese = new LiveValidation('mese', { validMessage: "OK!" });
mese.add( Validate.Numericality, { minimum: 1, tooLowMessage: "inserire il mese"} );

var anno = new LiveValidation('anno', { validMessage: "OK!" });
anno.add( Validate.Numericality, { minimum: 1, tooLowMessage: "inserire l\'anno"} );


if((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0)))
{
if((day>"29")&&(month=="2")){
giorno.add( Validate.Numericality, { maximum: 29, tooHighMessage: "data non valida, nell\'anno bisestile febbraio non ha più di 29 giorni!"} );
//alert("data non valida, nell\'anno bisestile febbraio non ha più di 29 giorni!");
}}
else{
if((day>"28")&&(month=="2")){
giorno.add( Validate.Numericality, { maximum: 28, tooHighMessage: "data non valida,febbraio non ha più di 28 giorni!"} );
//alert("data non valida,febbraio non ha più di 28 giorni!");
}}

if((month=="11")&&(day=="31")){
mese.add( Validate.Numericality, { maximum: 30, tooHighMessage: "data non valida,novembre non ha il giorno 31!"} );
//alert("data non valida,novembre non ha il giorno 31!");
}
if((month=="9")&&(day=="31")){
mese.add( Validate.Numericality, { maximum: 30, tooHighMessage: "data non valida,settembre non ha il giorno 31!"} );
//alert("data non valida,settembre non ha il giorno 31!");
}
if((month=="6")&&(day=="31")){
mese.add( Validate.Numericality, { maximum: 30, tooHighMessage: "data non valida,giugno non ha il giorno 31!"} );
//alert("data non valida,giugno non ha il giorno 31!");
}
if((month=="4")&&(day=="31")){
mese.add( Validate.Numericality, { maximum: 30, tooHighMessage: "data non valida,aprile non ha il giorno 31!"} );
//alert("data non valida,aprile non ha il giorno 31!");
}
/*
if(day=="0"){
alert('non hai inserito il giorno,inseriscilo!');
}
if(month=="0"){
alert('non hai inserito il mese,inseriscilo!');
}
if(year=="0"){
alert('non hai inserito l\'anno,inseriscilo!');
}
*/


}


</script>
<form name="registrazione" action="" method="post">
Nome

<input type='text' name='nome' id="name" />


Cognome

<input type='text' name='nickname' id="nick" />

Data di nascita

<select name="giorno" id="giorno" onchange="apertura()"><option value="0">Giorno:</option><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option></select>
<select name="mese" id="mese" onchange="apertura()"><option value="0">Mese:</option><option value="1">gennaio</option><option value="2">febbraio</option><option value="3">marzo</option><option value="4">aprile</option><option value="5">maggio</option><option value="6">giugno</option><option value="7">luglio</option><option value="8">agosto</option><option value="9">settembre</option><option value="10">ottobre</option><option value="11">novembre</option><option value="12">dicembre</option></select>
<select name="anno" id="anno" onchange="apertura()"><option value="0">Anno:</option><option value="2011">2011</option><option value="2010">2010</option><option value="2009">2009</option><option value="2008">2008</option><option value="2007">2007</option><option value="2006">2006</option><option value="2005">2005</option><option value="2004">2004</option><option value="2003">2003</option><option value="2002">2002</option><option value="2001">2001</option><option value="2000">2000</option><option value="1999">1999</option><option value="1998">1998</option><option value="1997">1997</option><option value="1996">1996</option><option value="1995">1995</option><option value="1994">1994</option><option value="1993">1993</option><option value="1992">1992</option><option value="1991">1991</option><option value="1990">1990</option><option value="1989">1989</option><option value="1988">1988</option><option value="1987">1987</option><option value="1986">1986</option><option value="1985">1985</option><option value="1984">1984</option><option value="1983">1983</option><option value="1982">1982</option><option value="1981">1981</option><option value="1980">1980</option><option value="1979">1979</option><option value="1978">1978</option><option value="1977">1977</option><option value="1976">1976</option><option value="1975">1975</option><option value="1974">1974</option><option value="1973">1973</option><option value="1972">1972</option><option value="1971">1971</option><option value="1970">1970</option><option value="1969">1969</option><option value="1968">1968</option><option value="1967">1967</option><option value="1966">1966</option><option value="1965">1965</option><option value="1964">1964</option><option value="1963">1963</option><option value="1962">1962</option><option value="1961">1961</option><option value="1960">1960</option><option value="1959">1959</option><option value="1958">1958</option><option value="1957">1957</option><option value="1956">1956</option><option value="1955">1955</option><option value="1954">1954</option><option value="1953">1953</option><option value="1952">1952</option><option value="1951">1951</option><option value="1950">1950</option><option value="1949">1949</option><option value="1948">1948</option><option value="1947">1947</option><option value="1946">1946</option><option value="1945">1945</option><option value="1944">1944</option><option value="1943">1943</option><option value="1942">1942</option><option value="1941">1941</option><option value="1940">1940</option><option value="1939">1939</option><option value="1938">1938</option><option value="1937">1937</option><option value="1936">1936</option><option value="1935">1935</option><option value="1934">1934</option><option value="1933">1933</option><option value="1932">1932</option><option value="1931">1931</option><option value="1930">1930</option><option value="1929">1929</option><option value="1928">1928</option><option value="1927">1927</option><option value="1926">1926</option><option value="1925">1925</option><option value="1924">1924</option><option value="1923">1923</option><option value="1922">1922</option><option value="1921">1921</option><option value="1920">1920</option><option value="1919">1919</option><option value="1918">1918</option><option value="1917">1917</option><option value="1916">1916</option><option value="1915">1915</option><option value="1914">1914</option><option value="1913">1913</option><option value="1912">1912</option><option value="1911">1911</option><option value="1910">1910</option><option value="1909">1909</option><option value="1908">1908</option><option value="1907">1907</option><option value="1906">1906</option><option value="1905">1905</option></select>



Mail

<input type='text' name='email' id="email" />


Password

<input type='password' name='pass1' id="pass1" />


Ripeti Password

<input type='password' name='pass2' id="pass2" />




<input type="button" value="Completa Registrazione" onclick="apertura()"/>