Perdona se insisto a voler usare il mio codice... posto un esempio con lo script corretto

codice:
<script>
function isDate(str) {
	str = str .replace(/[\-\.\s]/g,"/"); 
	spz = str.split("/"); 
	dat = new Date(spz[2], spz[1]-1, spz[0]); 
	gg = dat.getDate();
	mm = dat.getMonth() +1;
	aa = dat.getFullYear();
	if (aa==parseFloat(spz[2]) && mm==parseFloat(spz[1]) && gg==parseFloat(spz[0])) 	
		return dat;
	return false;
} 
</script>
</HEAD>

<BODY>
<form onsubmit="if (!isDate(this.campo1.value)){alert('Errore nella data 1');return false}">
<input type=text name=campo1>
<input type=text name=campo2 onblur="if (!isDate(this.value))alert('Errore nella data 2');">
<input type=submit>
</form>
</BODY>
Il primo campom viene controllato all'invio del form, il secondo solo quando perde il focus.

ciao