Eccomi qua! Come promesso ho fatto uno scriptino semplice semplice ma riutilizzabilissimo:
-------------------
<input type="checkbox" name="ck1" value="check1" onclick="segna(0);contr();">Checkbox 1
<input type="checkbox" name="ck2" value="check2" onclick="segna(1);contr();">Checkbox 2
<input type="checkbox" name="ck3" value="check3" onclick="segna(2);contr();">Checkbox 3
<div id="bottone">
<input type="button" name="bott" value="clicca" DISABLED>
</div>
<script language="javascript">
var arrValori = new Array(false, false, false);
function segna(quale)
{
arrValori[quale] = !arrValori[quale];
}
function contr()
{
if((arrValori[0]==true)&&(arrValori[1]==true)&&(arrValori[2]==true))
{
bottone.innerHTML="<input type='button' name='bott' value='clicca'>";
}
else
{
bottone.innerHTML="<input type='button' name='bott' value='clicca' DISABLED>";
}
}
</script>
----------------
Commento:
in cima ci sono i vai checkbox e sotto il bottone disabilitato.
Ogni volta che si fa click su un checkbox vengono richiamate le due funzioni segna() e contr().
Poi c'e' un array che tiene conto dello stato dei checkbox (true=selezionato, false=non selezionato).
segna() imposta il valore dell'array al contrario dello stato precedente (se era false lo mette a true e viceversa). Questo serve perche' altrimenti se prima si selezionano tutti e tre e poi si deselezionano il bottone resta attivo, mentre come ho fatto io, se clicchi 2 volte sul checkbox (lo selezioni e poi dopo lo deselezioni) il suo stato nell'array corrisponde a quello del checkbox.
La funzione contr() si occupa di controllare i valori dell'array. Se sono tutti true, ovvero se tutti i checkbox sono selezionati, cambia il contenuto del tag <div> mettendoci il codice per un bottone abilitato. Se poi si deseleziona un qualsiasi checkbox, questa funzione si preoccupa di riscrivere di nuovo l'interno del tag <div> in modo da disabilitare di nuovo il bottone.
A dirsi sembra difficile ma a farsi e' molto piu' facile. Metti il codice dentro una pagina e guarda che succede.
Per modificare fai pure altri checkbox, quanti te ne servono, e aggiungi tanti elementi all'array arrValori quanti sono i checkbox da te creati.
Poi basta soltanto che ai nuovi checkbox associ l'attributo onclick come quello dell'esempio, ma con l'argomento (il numero) della funzione in corrispondenza con un elemento dell'array (ovvero aumenta di uno ogni checkbox in piu' che metti) e aggiungi nella funzione contr() un if come quelli che ci sono gia' (ma con indice incrementato, come al solito) e il gioco e' fatto!
Se servono ulteriori chiarimenti dimmelo pure