onKeyPress o onKeyUp associato all' Elemento INPUT che raccoglie il dato.
Ma in che casi vorresti ritenere la data valida o meno?
Se uno inserisce anni troppo lontani? Se l' utente inserisce lettere invece che numeri?
if(campo.value == NaN){alert('invalid date !');};
NaN = Not a Number
Si può evitare che l' utente vado oltre 31 nel campo gg o metta (diciamo) 28 nel campo mm
cose di questo tipo ...
Oppure si può anche confrontare la data inserita con un set di date che hai in database, se è questa corrispondenza che devi verificare.