
Originariamente inviata da
Andrea1979
Ecco, una soluzione client-side in javascript non è proprio quello che avrei adottato io, per un sacco di ragioni. La prima è che, anche se non succede più, qualcuno potrebbe avere javascript disabilitato/limitato (scelte aziendali, dispositivo non compatibile al 100% o che). La seconda è che una soluzione client-side è comunque aggirabile (decido io che cosa mandare). La terza, ma questa è relativa all'implementazione specifica, lì è consentito ad occhio, un 30 febbraio.
La validazione client-side va certamente fatta a monte, ma dev'essere "back-uppata" da una seconda validazione server-side. Piuttosto manchi la parte client-side che quella server-side (tra l'altro, se il form è complesso e prevede altre immissioni, potresti adottare AJAX per richiamare una validazione server-side durante la compilazione dei campi data e ora: in questo modo sfrutti il lavoro -anche se ridondante- che devi comunque fare server-side e l'utente riceve in real-time i messaggi relativi a compilazioni non consistenti, ma non vorrei mettere troppa carne sul fuoco)
In sostanza implementerei un parsing basato su SimpleDateFormat, con un setLenient(false) (in modo da evitare interpretazioni euristiche di date non valide - vedi 30-31 Febbraio) per il server-side.
PS: altro piccolo accorgimento che potresti adottare: doti il tuo form di un controllino tipo DatePicker di jQuery (e siamo ancora nel reame client-side) e rendi i campi relativi a data e ora non direttamente editabili. L'utente non smaliziato (o per meglio dire, l'utente non malintenzionato), non andrà a giochicchiare con quei campi. La validazione server-side va comunque effettuata.