In questo caso allora il controllo lato server (dopo che il form è stato inviato) è fatto male, in che linguaggio è?
ASP, ma lato server controllo solo che il campo sia pieno. E' un controllo secondario per raccogliere quegli utenti magari con browser incompatibili con il mio JS e aiutarli a capire come iscriversi correttamente.

Questa, invece, fa quello che dico io... ma non indica che il campo e' vuoto, ne' riporta al campo non compilato :-(

function Registra(mode){
if(mode == "iscrivimi"){
if (ValidateMail(document.news.mail.value) == true){
document.news.action = "grazie.asp";
document.news.stato.value = "1";
document.news.submit();
}else{
alert ("Non hai inserito un indirizzo E-mail valido!");
document.news.mail.value = "";
}
}