OVH Cloud OVH Cloud

je me send un peu con la !!!

6 réponses
Avatar
Etienne SOBOLE
hum... salut.

dans un formaulaire
<form onsubmit='return fct();'>
<input type='checkbox' name='chk[]' value=1>aaa<br/>
<input type='checkbox' name='chk[]' value=2>bbb<br/>
<input type='checkbox' name='chk[]' value=3>ccc<br/>
</form>

Ou est ce que je trouve le tableau des checkbox pour vérifier par exemple
qu'au moins une checkbox a été cochée???

merci
Etienne

6 réponses

Avatar
Etienne SOBOLE
ok.

c'est bon. j'ai trouvé.
je savais bien que c'etait tout simple.
merci a+

Etienne
Avatar
rperruez
"Etienne SOBOLE" a écrit dans le message de news:
42d90a1b$0$13359$
ok.

c'est bon. j'ai trouvé.
je savais bien que c'etait tout simple.
merci a+

Etienne


Ben explique...moi j'ai pas trouvé...


--


Avatar
Yann-Erwan Perio
rperruez wrote:

Ben explique...moi j'ai pas trouvé...


Le lien suivant (en anglais) décrit en détail comment traiter le sujet:

<URL:http://www.jibbering.com/faq/faq_notes/form_access.html#faBut>

Une application possible pourrait donner le script suivant.

---
<style type="text/css">
label {display:block}
</style>

<form action="" onsubmit="return validate(this);">
<label for="c1">
<input type="checkbox" name="chk[]" id="c1" value="1">
aaa
</label>
<label for="c2">
<input type="checkbox" name="chk[]" id="c2" value="2">
bbb
</label>
<label for="c3">
<input type="checkbox" name="chk[]" id="c3" value="3">
ccc
</label>
<input type="submit">
</form>

<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.

Avatar
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

Avatar
ASM
Etienne SOBOLE wrote:
Ben explique...moi j'ai pas trouvé...



si 'nf' est ton formulaire


nf = document.forms['nom_de_monForm'];

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


Avatar
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