Ho inserito questo script per controllare i campi di un form:

<Script language="javascript">
// controllo dati nel form
function invia(ilForm){
if (ilForm.NM.value== ""){
alert("<%=CNM%>")
ilForm.NM.focus();
return false;
}

// controllo email
EmailAddr = ilForm.EML.value;
Filtro = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
if (Filtro.test(EmailAddr)){
return true
}
else
{
alert("<%=CEML%>");
ILForm.EML.focus();
return false
}

if (ilForm.TXT.value== ""){
alert("<%=TXT%>")
ilForm.TXT.focus();
return false
}
}
//-->
</script>


Il campo NM e TXT vanno bene, ma quello che mi dà i problemi è il campo EML
Se lo lascio vuoto mi da l'errore con la finestra allert ma nonostante il "return false" la pagina viene lo stesso caricata.
Poi o notato anche se inserisco caratteri a caso sena "@" e il "." non me lo vede come errore.

Cosa devo fare?