Ciao a tutti.
Ho un problema con una funzione javascript..
Questa funzione mi serve per riconoscere e formattare la data inserendo in vari modi il giorno mese anno..
(es 010110 ,01012010, 1110 che darà 01/01/2010 )
il problema è che ho un'altra funzione check_date() che deve fare il controllo se i valori sono plausibili e se l'hanno è bisestile o meno.. nel caso di data errata dovrei far in modo che venga cancellato il campo di input, ..il problema è che non riesco a fare quest'ultimo passaggio..cosa devo scrivere dopo return
ecco gli script: (dentro ci sono alcuni alert che ho messo per fare dei test)
codice:
<script type="text/javascript">
function check_date(day, month, year)
{
if (day < 1 || day > 31)
{alert("Day must be between 1 and 31.")
return // CHE DEVO METTERE PER PULIRE IL CAMPO???;};
if (month < 1 || month > 12)
{ alert("Month must be between 1 and 12");
return false};
if (month == 2) // check for february 29th
{var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day>29 || (day==29 && !isleap))
{alert("February " + y + " doesn't have " + d + " days!");
return false;};
}
if (month == 4 , 6 , 9 , 11 && day == 31)
{alert ("This month doesn't have 31 days");
return false;};
}
</script>
codice:
function FormatDate(dateForm)
{
var datelength=dateForm.value.length;
var date = dateForm.value;
// alert("valore scritto nel modulo="+date);
//00alert(datelength);
var datePat = /^(\d{1,2})(\/|\-|\.)(\d{1,2})\2(\d{4})$/; // requires 4 digit year
var matchArray = date.match(datePat);
var day = date.substring(1,2);
var dayvalue= day.value
//day = matchArray[1];
switch (datelength)
{
case 8://es. gg.mm.yyyy
alert("Caso 8 digit, valore date="+date)
var day = date.substring(0,2);
var month = date.substring(2,4);
var year = date.substring(4,8);
check_date(day, month, year)
dateForm.value = day +"/"+ month +"/"+year;
break;
case 7: //es. g.mm.yyyyy
alert("Caso 7 digit, valore date="+date)
var day = date.substring(0,1);
var month = date.substring(1,3);
var year = date.substring(3,8);
check_date(day, month, year)
dateForm.value = "0"+day +"/"+ month +"/"+year;
break;
//ecc con gli altri casi
}