Ora e` piu` chiaro.
Anzitutto nel richiamo della funzione tu usi:
onClick="return LimitaCheck(this.form.scelta2,4)"
Basterebbe (e sarebbe piu` semplice)
onclick="return LimitaCheck(this,4);"
Per il probelma specifico, forse ti basta una semplice modifica:
codice:
function LimitaCheck(cc,max){
var conta = 0;
var ff = cc.form;
for(var i=0; i<ff.length; i++) {
var ee = ff.elements[i];
if(ee.type=='checkbox' && ee.checked && ee.name.substr(0,4)==cc.name.substr(0,4) ) conta++;
}
return (conta<=max);
}
Nota che ho modificato dei nomi per razionalita`
Ho aggiunto elements[] per farlo funzionare in tutti i browser.
Ho tolto una graffa, per semplificare la struttura
Nota che viene usato l'attributo name di ogni checkbox per verificare se si tratta della stessa serie: i primi 4 caratteri del nome.
Come dire che il name deve essere presente in tutti i checkbox e i primi 4 caratteri devono essere uguali per ciascuna serie e diversi tra serie diverse.