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 }

Rispondi quotando