Newsgroup: it.comp.lang.javascript
Titolo: Dove ho sbagliato ?

ho creato questa funzione x controllare la data.nn funziona.
Potete dirmi dove sbaglio?
<html>
<head>
<title>DATE</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="javascript1.3" >					
var giorno,mese,anno
function ControlloData()
{ var abc="abcdefghijklmnopqrstuvwxyz"	//caratteri non consentiti
	if(giorno=="" && mese=="" && anno=="") 
		{ alert("Manca la data")
		//  giornoc
		}
	else 		
	    { if(giorno=="") { alert("manca il giorno")
				giornoc  }
	      else { if(giorno<1 || giorno>31)	
			 { alert("valore giono errato") 
			   giornoc
			 }
		     else { for(a=0;a<25;a++)
				{ for(b=0;b<8;b++)
				{  if(abc.charAt(a)==giorno.charAt(b))
	              	             {	alert("Caratteri non validi nel giorno ")
			   			giornoc
					      }
					}
				}
			  }
	    	   }
	      if(mese=="") { alert("manca il mese")
			     mesec
			   }	
	      else { if(mese<1 || mese>12)
			{ alert("valore mese errato")
			  meses	
			  mesec
			} 
		     else { for(a=0;a<25;a++)
				{ for(b=0;b<8;b++)
					{  if(abc.charAt(a)==mese.charAt(b))
						alert("Caratteri non validi nel mese ")
							meses
							mesec
					}
				}
			  }	
		   }
	     if(anno=="") { alert("manca l'anno")
			    annoc
			  }	
	     else { if(anno<1000)
		      {	alert("valore anno errato")
			annoc
			annos
	 	      }
		    else { for(a=0;a<25;a++)
				{ for(b=0;b<8;b++)
					{  if(abc.charAt(a)==anno.charAt(b))
						alert("Caratteri non validi nell'anno ")
						annoc
						annos
					}
				}
			  }
		  }
	    }
}
function Data()
{
	giorno=document.info.gg.value
	mese=document.info.mm.value
	anno=document.info.aa.value
	giornoc=document.info.gg.focus()
	mesec=document.info.mm.focus()
	annoc=document.info.aa.focus()
	giornos=document.info.gg.value==""
	meses=document.info.mm.value==""
	annos=document.info.aa.value==""
	ControlloData(giorno,mese,anno,giornoc,mesec,annoc,meses,annos)
}
</script>
</head>
<body>
<form name="info">
inserisci data obbligatorio :
	 <input type="text" name="gg" size="2" maxlength="2">
          / 
          <input type="text" name="mm" size="2" maxlength="2">
          / 
          <input type="text" name="aa" size="4" maxlength="4">
	<br>
 
</form>
<input type="button" value="controllo" onClick="Data()">
</body>
</html>
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Sotto quella che uso io;
nella tua secondo me il discorso dei caratteri non ammessi è limitativo
perché ne mancano molti, io lo farei al contrario (caratteri ammessi); a
vederla così secondo me accetta 31/02/2000...
function isdate(d) {
  function trim(str){
    return String(str).replace(/^\s*/, "").replace(/\s*$/, "");
  }
  if (d=="") return false;
  //d: formato gg/mm/yyyy
 var gg=trim(d).match(/\d+/g);
 if (gg.length>3) return false;
 gg[0]=(gg[0].length==1?"0":"")+gg[0];
 gg[1]=(gg[1].length==1?"0":"")+gg[1];
 gg[2]=(gg[2].length==2?"20":"")+gg[2];
 var datatest=new Date(gg[2],gg[1]-1,gg[0]);
 //getYear: netscape6 restituisce 101 anziché 2001, verifico solo le ultime
2 cifre
 return
((Number(gg[0])==datatest.getDate())&&(Number(gg[1])-1==datatest.getMonth())
&&(String(Number(gg[2])).substr(String(Number(gg[2])).length-2)==String(data
test.getYear()).substr(String(datatest.getYear()).length-2)))?true:false;
}

grazie di tutto. appena riesco a provarla ti faccio sapere qualcosa.
ancora grazie


 ancora grazie
Funziona tutto a meraviglia 
grazie ancora
