Forse quel controllo ti lascai passare tutto.
Prova a metterci return false; dove e` sbagliato e a chiamare la funzine con return nomefunz(); dentro l'attributo dell'evento.
codice:
function controlla(ff) {
var cap1 = ff.txt_CAP.value;
if (cap1 == '') {
alert("C.A.P. obbligatorio");
ff.txt_CAP.focus();
return false;
} else if (!cap1.match(/^[0-9]{5}$/) {
alert("il C.A.P. deve essere di 5 caratteri numerici");
ff.txt_CAP.focus();
return false;
}
var ema1 = ff.txt_Email.value;
if (ema1 == '') {
alert("Email obbligatoria");
ff.txt_Email.focus();
return false;
} else if(!ema1.match(/^.{2,}\@.{2,}(\..{2,})+?$/) {
alert("controlla sintassi Email");
ff.txt_Email.focus();
return false;
}
var tel1 = ff.txt_Tel.value;
if (tel1 == '') {
alert("Telefono obbligatorio");
ff.txt_Tel.focus();
return false;
} else if(!tel1.match(/^\+??[0-9 ]$/) {
alert("controlla sintassi Telefono");
ff.txt_Tel.focus();
return false;
}
return true;
}
Devi chiamare la funzione con:
<form ... onsubmit="return controlla(this);">
Attenzione che ci soino vari backslash. Se non li vedi fai un quote del messaggio prima di fare il copia-incolla.