<script type="text/javascript"> function validate(form){ var cbx=form.elements["chk[]"], count=0, msg;
// normaliser la collection des checkboxes if(!cbx.length) cbx=[cbx];
// compter les chechboxes cochées for(var iiËx.length; ii--;) if(cbx[ii].checked) count++;
// prendre une décision! switch(count) { case 0 : msg="Cochez une case!"; break; case 1 : break; //OK default : msg="Une seule case doit être cochée, merci!"; break; }
if(msg) { alert(msg); return false; }
return true; } </script> ---
HTH, Yep.
rperruez wrote:
Ben explique...moi j'ai pas trouvé...
Le lien suivant (en anglais) décrit en détail comment traiter le sujet:
<script type="text/javascript">
function validate(form){
var cbx=form.elements["chk[]"], count=0, msg;
// normaliser la collection des checkboxes
if(!cbx.length) cbx=[cbx];
// compter les chechboxes cochées
for(var iiËx.length; ii--;)
if(cbx[ii].checked) count++;
// prendre une décision!
switch(count) {
case 0 : msg="Cochez une case!"; break;
case 1 : break; //OK
default : msg="Une seule case doit être cochée, merci!"; break;
}
<script type="text/javascript"> function validate(form){ var cbx=form.elements["chk[]"], count=0, msg;
// normaliser la collection des checkboxes if(!cbx.length) cbx=[cbx];
// compter les chechboxes cochées for(var iiËx.length; ii--;) if(cbx[ii].checked) count++;
// prendre une décision! switch(count) { case 0 : msg="Cochez une case!"; break; case 1 : break; //OK default : msg="Une seule case doit être cochée, merci!"; break; }
if(msg) { alert(msg); return false; }
return true; } </script> ---
HTH, Yep.
Etienne SOBOLE
Ben explique...moi j'ai pas trouvé...
si 'nf' est ton formulaire
atleastone = false; for (e = 0 ; e < nf.length ; e++) { if ((nf.elements[e].tagName == 'INPUT') && (nf.elements[e].type == 'checkbox')) { if (nf.elements[e].checked) atleastone = true; } }
voila. ca verifie qu'au moins une case est cochée ... Etienne
Ben explique...moi j'ai pas trouvé...
si 'nf' est ton formulaire
atleastone = false;
for (e = 0 ; e < nf.length ; e++)
{
if ((nf.elements[e].tagName == 'INPUT') && (nf.elements[e].type ==
'checkbox'))
{
if (nf.elements[e].checked)
atleastone = true;
}
}
voila. ca verifie qu'au moins une case est cochée ...
Etienne
pour le cas qui nous occupe (plusieurs checkboxes de même nom)
var ok = false; var c = nf['chk[]']; // tableau des checkboxes nommées 'chk[]' var c_chk;
for (var i=0;i<c.length;i++) if(c[i].checked) { ok=true; c_chk=c[i]; }
if(ok) { alert('Oui une case est cochéenC'est celle-ci') c_chk.focus(); c_chk.select(); } else alert('Rien ni aucune chk cochée');
-- Stephane Moriaux et son [moins] vieux Mac
ASM
ASM wrote: <snip>
comme je vois que le sujet enthousiasme les foules hop ! un p'tit complément :
<html> <script type="text/javascript"><!-- function chks(chkbx) { // c = tableau des checkboxes nommées chkbx var c = document.forms[0][chkbx]; var x = new Array(), j=0; for (var i=0;i<c.length;i++) if(c[i].checked) { x[j]=c[i].parentNode.lastChild.nodeValue; j++; } if(j>0) { txt = j>1? 'Ce sont celles':'C'est celle' alert('Oui une case "'+chkbx+ '" au moins est cochxe9en'+txt+' No :'+x); } else alert('Rien ni aucune chk cochxe9e'); } // --></script> pour le cas qui nous occupe (plusieurs checkboxes de même nom) <form> <p><input type=checkbox name="chk[]"> 1 <p><input type=checkbox name="ch[]"> 4 <p><input type=checkbox name="chk[]"> 2 <p><input type=checkbox name="ch[]"> 5 <p><input type=checkbox name="chk[]"> 3 <p><input type=checkbox name="ch[]"> 6 </form> <p><a href="javascript:chks('chk[]');">case(s) chk ?</a><br> <a href="javascript:chks('ch[]');">case(s) ch ?</a><br> </html>
copier+coller dans son éditeur texte et essayer avec un navigateur pas trop vieux ... donc ... pas NC4.5 :-)
-- Stephane Moriaux et son [moins] vieux Mac
ASM wrote:
<snip>
comme je vois que le sujet enthousiasme les foules
hop ! un p'tit complément :
<html>
<script type="text/javascript"><!--
function chks(chkbx) {
// c = tableau des checkboxes nommées chkbx
var c = document.forms[0][chkbx];
var x = new Array(), j=0;
for (var i=0;i<c.length;i++)
if(c[i].checked) {
x[j]=c[i].parentNode.lastChild.nodeValue;
j++;
}
if(j>0) {
txt = j>1? 'Ce sont celles':'C'est celle'
alert('Oui une case "'+chkbx+
'" au moins est cochxe9en'+txt+' No :'+x);
}
else alert('Rien ni aucune chk cochxe9e');
}
// --></script>
pour le cas qui nous occupe (plusieurs checkboxes de même nom)
<form>
<p><input type=checkbox name="chk[]"> 1
<p><input type=checkbox name="ch[]"> 4
<p><input type=checkbox name="chk[]"> 2
<p><input type=checkbox name="ch[]"> 5
<p><input type=checkbox name="chk[]"> 3
<p><input type=checkbox name="ch[]"> 6
</form>
<p><a href="javascript:chks('chk[]');">case(s) chk ?</a><br>
<a href="javascript:chks('ch[]');">case(s) ch ?</a><br>
</html>
copier+coller dans son éditeur texte et essayer avec un navigateur
pas trop vieux ... donc ... pas NC4.5 :-)
comme je vois que le sujet enthousiasme les foules hop ! un p'tit complément :
<html> <script type="text/javascript"><!-- function chks(chkbx) { // c = tableau des checkboxes nommées chkbx var c = document.forms[0][chkbx]; var x = new Array(), j=0; for (var i=0;i<c.length;i++) if(c[i].checked) { x[j]=c[i].parentNode.lastChild.nodeValue; j++; } if(j>0) { txt = j>1? 'Ce sont celles':'C'est celle' alert('Oui une case "'+chkbx+ '" au moins est cochxe9en'+txt+' No :'+x); } else alert('Rien ni aucune chk cochxe9e'); } // --></script> pour le cas qui nous occupe (plusieurs checkboxes de même nom) <form> <p><input type=checkbox name="chk[]"> 1 <p><input type=checkbox name="ch[]"> 4 <p><input type=checkbox name="chk[]"> 2 <p><input type=checkbox name="ch[]"> 5 <p><input type=checkbox name="chk[]"> 3 <p><input type=checkbox name="ch[]"> 6 </form> <p><a href="javascript:chks('chk[]');">case(s) chk ?</a><br> <a href="javascript:chks('ch[]');">case(s) ch ?</a><br> </html>
copier+coller dans son éditeur texte et essayer avec un navigateur pas trop vieux ... donc ... pas NC4.5 :-)