Me recordó un viejo teorema:
Código PHP:
<html>
<head>
<title>Presupuesto</title>
<script>
function pintar(e){
e=e || window.event;
o= e.srcElement || e.target;
colores=['orange','white'];
color=o.checked?colores[0]:colores[1];
au=document.getElementsByTagName('input');
for(i=0,j=0;i<au.length;i++){
if(au[i].type!='checkbox')continue;
if(au[i].checked==true)j++;
if(j>2){
alert('no más de 2');
o.checked=false;
return;
}
}
o.parentNode.parentNode.style.backgroundColor=color;
}
function evaluar(obj){
obj.onclick=function(event){
pintar(event);
}
}
window.onload=function(){
au=document.getElementsByTagName('input');
for(i=0;i<au.length;i++){
if(au[i].type!='checkbox')continue;
evaluar(au[i])
}
}
</script>
</head>
<body>
<h1>Por favor, seleccione 2 opciones como máximo:</h1>
<form name="pepe">
<table border="0" cellspacing="0" cellpadding="3">
<tr>
<td><input type="checkbox" name="checkbox" value="checkbox"></td>
<td>BUENO</td>
</tr>
<tr>
<td><input type="checkbox" name="checkbox2" value="checkbox"></td>
<td>BARATO</td>
</tr>
<tr>
<td><input type="checkbox" name="checkbox3" value="checkbox"></td>
<td>RAPIDO</td>
</tr>
</table>
</form>
</body>
</html>