Ciao Mich,
si, in effetti avevo già fatto una cosa simile che funzionava perfettamente, però avevo una sola serie di checkbox.
Qui ne ho 2 serie nello stesso form e applicando lo stesso tipo di soluzione non mi funziona correttamente.
Posto il codice in modo che tu possa provarlo per vederne l'effetto.
Teoricamente dovrebbe limitare a 4 le scelte della prima tabella e a 2 le scelte della seconda tabella, ma in pratica non é proprio cosi.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento senza titolo</title>
<script language="javascript">
function LimitaCheck(cc,max){
conta = 0;
var cc1 = cc.form;
for(var i=0; i<cc1.length; i++) {
if(cc1[i].type=='checkbox' && cc1[i].checked) {
conta++;
}
}
return (conta<=max);
}
</script>
</head>
<body>
<form name="form1" method="post" action="">
<table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="250"><table width="200" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>scelta1</td>
<td><input name="scelta1" type="checkbox" id="scelta1" value="checkbox" onClick="return LimitaCheck(this.form.scelta1,4)"></td>
</tr>
<tr>
<td>scelta2</td>
<td><input name="scelta2" type="checkbox" id="scelta2" value="checkbox" onClick="return LimitaCheck(this.form.scelta2,4)"></td>
</tr>
<tr>
<td>scelta3</td>
<td><input name="scelta3" type="checkbox" id="scelta3" value="checkbox" onClick="return LimitaCheck(this.form.scelta3,4)"></td>
</tr>
<tr>
<td>scelta4</td>
<td><input name="scelta4" type="checkbox" id="scelta4" value="checkbox" onClick="return LimitaCheck(this.form.scelta4,4)"></td>
</tr>
<tr>
<td>scelta5</td>
<td><input name="scelta5" type="checkbox" id="scelta5" value="checkbox" onClick="return LimitaCheck(this.form.scelta5,4)"></td>
</tr>
<tr>
<td>scelta6</td>
<td><input name="scelta6" type="checkbox" id="scelta6" value="checkbox" onClick="return LimitaCheck(this.form.scelta6,4)"></td>
</tr>
</table></td>
<td width="250"><table width="200" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>opzione1</td>
<td><input name="opzione1" type="checkbox" id="opzione1" value="checkbox" onClick="return LimitaCheck(this.form.opzione1,2)"></td>
</tr>
<tr>
<td>opzione2</td>
<td><input name="opzione2" type="checkbox" id="opzione2" value="checkbox" onClick="return LimitaCheck(this.form.opzione2,2)"></td>
</tr>
<tr>
<td>opzione3</td>
<td><input name="opzione3" type="checkbox" id="opzione3" value="checkbox" onClick="return LimitaCheck(this.form.opzione3,2)"></td>
</tr>
<tr>
<td>opzione4</td>
<td><input name="opzione4" type="checkbox" id="opzione4" value="checkbox" onClick="return LimitaCheck(this.form.opzione4,2)"></td>
</tr>
<tr>
<td>opzione5</td>
<td><input name="opzione5" type="checkbox" id="opzione5" value="checkbox" onClick="return LimitaCheck(this.form.opzione5,2)"></td>
</tr>
<tr>
<td>opzione6</td>
<td><input name="opzione6" type="checkbox" id="opzione6" value="checkbox" onClick="return LimitaCheck(this.form.opzione6,2)"></td>
</tr>
</table></td>
</tr>
</table>
</form>
</body>
</html>