Rileggendo meglio la prima cosa che hai scritto....
io vorrei che se non è spuntato almeno un check l'invio non deve essere eseguito
Almeno : quindi forse ora ti sta mostrando ripetutamente l'alert perchè la prima della serie di check non checkata...? Se è così prova:
codice:
for(var i=0;i<e.length;i++)
  if(-condizione per cui può inviare-)
    return true;
  //else niente

//se arrivo qui è perchè non si è mai verificata la condizione
alert(....);
return false;
Che ne dici?