OVH Cloud OVH Cloud

Checkbox - tableau et disabled

12 réponses
Avatar
Eric BOYER
Bonjour,


Dans 2 checkbox qui se suivent je souhaiterais avoir le deuxième
disabled par défaut (ca OK) mais l'activer quand on sélectionne le premier :

j'ai essayé :
<form method=post name=categories>
<input type=checkbox name=tabcat[] value=Groupe1
onClick=categories.tabcat[1].disabled=false> G1<br>
<input type=checkbox name=tabcat[] value=g1v1 disabled>g1v1<br>
<input type=submit value='Goooooooo'>
</form>

mais ca marche pas !

Ca ca marche :
<form method=post name=categories>
<input type=checkbox name=tabcat[] value=Groupe1
onClick=categories.tabcat1.disabled=false> G1<br>
<input type=checkbox name=tabcat1 value=g1v1 disabled>g1v1<br>
<input type=submit value='Goooooooo'>
</form>

Par contre je dois OBLIGATOIREMENT récupérer les valeurs dans un tableau ...

Comment faire SVP ?
merci

Eric.

10 réponses

1 2
Avatar
YD

Dans 2 checkbox qui se suivent je souhaiterais avoir le deuxième
disabled par défaut (ca OK) mais l'activer quand on sélectionne le
premier :

j'ai essayé :
<form method=post nameÊtegories>
<input type=checkbox name=tabcat[] value=Groupe1
onClickÊtegories.tabcat[1].disabledúlse> G1<br>


J'essaierai avec :
<input type="checkbox" name="tabcat[]" value="Groupe1"
onclick="this.form.elements('tabcat[]')[1].disabledúlse"> G1<br>

<input type=checkbox name=tabcat[] value=g1v1 disabled>g1v1<br>
<input type=submit value='Goooooooo'>
</form>


Et il vaut mieux mettre les attributs entre quotes...
--
Y.D.

Avatar
Cenekemoi

Dans 2 checkbox qui se suivent je souhaiterais avoir le deuxième
disabled par défaut (ca OK) mais l'activer quand on sélectionne le
premier :

j'ai essayé :
<form method=post nameÊtegories>
<input type=checkbox name=tabcat[] value=Groupe1
onClickÊtegories.tabcat[1].disabledúlse> G1<br>


J'essaierai avec :
<input type="checkbox" name="tabcat[]" value="Groupe1"
onclick="this.form.elements('tabcat[]')[1].disabledúlse"> G1<br>

<input type=checkbox name=tabcat[] value=g1v1 disabled>g1v1<br>
<input type=submit value='Goooooooo'>
</form>


Et il vaut mieux mettre les attributs entre quotes...


Exact, mais dans ce cas autant remplacer "tabcat[]" par "tabcat" tout
simplement ! Ce qui donne :

<form method=post nameÊtegories>

<input type="checkbox" name="tabcat" value="Groupe1"
onclick="this.form.elements('tabcat')[1].disabledúlse"> G1<br>

<input type="checkbox" name="tabcat" value=g1v1 disabled>g1v1<br>
<input type=submit value='Goooooooo'>
</form>

Mais cela répond-il au besoin d'Eric ?

--
Cordialement, Thierry ;-)


Avatar
Eric
Exact, mais dans ce cas autant remplacer "tabcat[]" par "tabcat" tout
simplement ! Ce qui donne :

<form method=post nameÊtegories>

<input type="checkbox" name="tabcat" value="Groupe1"
onclick="this.form.elements('tabcat')[1].disabledúlse"> G1<br>

<input type="checkbox" name="tabcat" value=g1v1 disabled>g1v1<br>
<input type=submit value='Goooooooo'>
</form>

Mais cela répond-il au besoin d'Eric ?

Non ca donne :


Erreur : this.form.elements is not a function

Avatar
Cenekemoi
Bonjour à Eric" <"eric.boyer[ANTIVOL]
Exact, mais dans ce cas autant remplacer "tabcat[]" par "tabcat" tout
simplement ! Ce qui donne :

<form method=post nameÊtegories>

<input type="checkbox" name="tabcat" value="Groupe1"
onclick="this.form.elements('tabcat')[1].disabledúlse"> G1<br>

<input type="checkbox" name="tabcat" value=g1v1 disabled>g1v1<br>
<input type=submit value='Goooooooo'>
</form>

Mais cela répond-il au besoin d'Eric ?

Non ca donne :


Erreur : this.form.elements is not a function


Désolé, il faut des crochets :
onclick="this.form.elements['tabcat'][1].disabledúlse"> G1<br>

--
Cordialement, Thierry ;-)


Avatar
ASM

<input type="checkbox" name="tabcat" value=g1v1 disabled>g1v1<br>
<input type=submit value='Goooooooo'>
</form>

Mais cela répond-il au besoin d'Eric ?

Non ca donne :


Erreur : this.form.elements is not a function


Normalement :

<form>
<input type="checkbox" name="tabcat" value="Groupe1"
onclick="tabcat[1].disabledúlse"> G1<br>
<input type="checkbox" name="tabcat" value=g1v1 disabled>g1v1<br>
</form>

tabcat[1].disabled

devrait fonctionner
mais il est toujours prudent de stipuler toute l'arborescence

document.forms[0].elements['tabcat'][1].disabled


--
*******************************************************
Stéphane MORIAUX et son vieux Mac
Aide Pages Perso (images & couleurs, formulaire, CHP)
http://perso.wanadoo.fr/stephane.moriaux/internet/
*******************************************************


Avatar
YD

J'essaierai avec :
<input type="checkbox" name="tabcat[]" value="Groupe1"
onclick="this.form.elements('tabcat[]')[1].disabledúlse"> G1<br>

[...] mais dans ce cas autant remplacer "tabcat[]" par "tabcat" tout

simplement ! [...] Mais cela répond-il au besoin d'Eric ?

Il me semble que 'tabcat[]' permet de récupérer un tableau PHP des valeurs

des INPUT qui portent ce nom. Est-ce qu'en écrivant 'tabcat' on obtient le
même résultat ?

--
Y.D.


Avatar
Eric
Merci

il fallait faire :

<form method=post nameÊtegories>

<input type="checkbox" name="tabcat[]" value="Groupe1"
onclick="this.form.elements['tabcat[]'][1].disabledúlse;this.form.elements['tabcat[]'][2].disabledúlse">
G1<br>

<input type="checkbox" name="tabcat[]" value=g1v1 disabled>g1v1<br>
<input type="checkbox" name="tabcat[]" value=g1v2 disabled>g1v2<br>
<input type="hidden" name="val1" value="OK">
<input type=submit value='Goooooooo'>
</form>
Avatar
Eric
et en fait il faut faire ca pour prendre en compte le decochage

merci a tous :


<form method=post nameÊtegories>

<input type="checkbox" name="tabcat[]" value="Groupe1"
onclick="
if (this.form.elements['tabcat[]'][0].checked==true) {
this.form.elements['tabcat[]'][1].disabledúlse;
this.form.elements['tabcat[]'][2].disabledúlse;
}
else {
this.form.elements['tabcat[]'][1].disabled=true;
this.form.elements['tabcat[]'][2].disabled=true;
}
"> G1<br>

<input type="checkbox" name="tabcat[]" value=g1v1 disabled>g1v1<br>
<input type="checkbox" name="tabcat[]" value=g1v2 disabled>g1v2<br>
<input type="hidden" name="val1" value="OK">
<input type=submit value='Goooooooo'>
</form>
Avatar
Cenekemoi
Bonjour à Eric" <"eric.boyer[ANTIVOL]
et en fait il faut faire ca pour prendre en compte le decochage

merci a tous :


<form method=post nameÊtegories>

<input type="checkbox" name="tabcat[]" value="Groupe1"
onclick="
if (this.form.elements['tabcat[]'][0].checked==true) {
this.form.elements['tabcat[]'][1].disabledúlse;
this.form.elements['tabcat[]'][2].disabledúlse;
}
else {
this.form.elements['tabcat[]'][1].disabled=true;
this.form.elements['tabcat[]'][2].disabled=true;
}
"> G1<br>

<input type="checkbox" name="tabcat[]" value=g1v1 disabled>g1v1<br>
<input type="checkbox" name="tabcat[]" value=g1v2 disabled>g1v2<br>
<input type="hidden" name="val1" value="OK">
<input type=submit value='Goooooooo'>
</form>


Donc, pour faire cela, je confirme : nul besoin de mettre les crochets
derrière "tabcat".

Ceci est quand même plus facile à lire :

<form method=post nameÊtegories>

<input type="checkbox" name="tabcat" value="Groupe1"
onclick="
if (this.form.tabcat[0].checked==true) {
this.form.tabcat[1].disabledúlse;
this.form.tabcat[2].disabledúlse;
}
else {
this.form.tabcat[1].disabled=true;
this.form.tabcat[2].disabled=true;
}
"> G1<br>

<input type="checkbox" name="tabcat" value=g1v1 disabled>g1v1<br>
<input type="checkbox" name="tabcat" value=g1v2 disabled>g1v2<br>
<input type="hidden" name="val1" value="OK">
<input type=submit value='Goooooooo'>
</form>

--
Cordialement, Thierry ;-)

Avatar
L'ermite
Cenekemoi wrote:

if (this.form.tabcat[0].checked==true) {
this.form.tabcat[1].disabledúlse;
this.form.tabcat[2].disabledúlse;
}
else {
this.form.tabcat[1].disabled=true;
this.form.tabcat[2].disabled=true;
}


Pourquoi écrire huit lignes alors que deux suffisent?

this.form.tabcat[1].disabled=!this.form.tabcat[0].checked;
this.form.tabcat[2].disabled=!this.form.tabcat[0].checked;

UnBooleen==true équivaut strictement au booleen lui-même. "==true" ne sert à rien.
De même, devoir assigner un "true" dans une clause if et un "false" dans le
else, sans aucune différence de code, revient à injecter directement la valeur
de la condition du if.

--
L'ermite

1 2