- e cosa c'entra adesso un altro form?
if (document.forms['ruolo'].elements[i].selectedIndex == 0) g=true;

- poi perche' for, se (proprio volendolo fare) e' un controllo if
for(theForm.elements['ruolo'].type == "select-one") {

- chi e' "i"?

- poi non chiudi le graffe dopo gli alert?
non ritorni falso dopo gli alert?

e se proprio vuoi analizzare tutto il form prima di ritornare nel caso falso
dovresti almeno scrivere cosi'

if(!g || !a) return false;
else return true;

rileggi quello che fai, concentrandoti,
ciao