le fichier choix.js
function testcheck(nbrcat,nbrcbox)
{
testnbrcat=0;
testok=false;
for (i=1; i<=nbrcat; i++)
{
numchk=String(nbrcbox).charAt(i-1);
for (a=1; a<=numchk; a++)
{
if (document.getElementById('cat'+i+'_cbox'+a).checked==true) testok=true;
}
if (testok==true) { testnbrcat=testnbrcat+1; testok=false; }
}
if (testnbrcat==nbrcat)
{
document.getElementById('form1').submit();
}else{
alert("Vous devez faire au moins un choix dans chaque catégorie");
}
}
le formulaire
Code : Tout sélectionner
<script type="text/javascript" src="choix.js"></script>
<form id="form1" method="post" action="action.php">
<p>Catégorie 1
<input type="checkbox" name="checkbox1" id="cat1_cbox1" value="checkbox" />
<input type="checkbox" name="checkbox2" id="cat1_cbox2" value="checkbox" />
<input type="checkbox" name="checkbox3" id="cat1_cbox3" value="checkbox" />
</p>
<p>Catégorie 2
<input type="checkbox" name="checkbox4" id="cat2_cbox1" value="checkbox" />
<input type="checkbox" name="checkbox5" id="cat2_cbox2" value="checkbox" />
<input type="checkbox" name="checkbox6" id="cat2_cbox3" value="checkbox" />
</p>
<p>Catégorie 3
<input type="checkbox" name="checkbox7" id="cat3_cbox1" value="checkbox" />
<input type="checkbox" name="checkbox8" id="cat3_cbox2" value="checkbox" />
<input type="checkbox" name="checkbox9" id="cat3_cbox3" value="checkbox" />
<input type="checkbox" name="checkbox9" id="cat3_cbox4" value="checkbox" />
</p>
<p><input type="button" name="Submit" value="Envoyer" onclick="testcheck('3','334')" /></p>
</form>
il faut respecter la syntaxe de l'ID cat(num)_cbox(num) exemple :
le deuxième checkbox de la troisième catégorie est cat3_cbox2
ensuite l'appelle à la fonction ce fait comme ceci :
Le premier élément c'est le nombre de catégories et le deuxième c'est le nombre de checkbox dans chaque catégorie.
Exemple tu as 3 catégories : (categorie 1, 3 checkbox) (categorie 2, 2 checkbox) (categorie 3, 4 checkbox)
l'appelle ce feras comme ceci : testcheck('nbr_categorie','nbrchkboxcat1|nbrchkboxcat1|nbrchkboxcat1')=testcheck('3','324').
Si tu ne comprends pas tout, demande plus d'explications.