Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pb de débutant javascript

3 réponses
Avatar
Seb
Bonjour,

Je débute sur ce langage, et j'ai beaucoup de mal à trouver l'info qui
m'est nécessaire. Voici mon problème je réalise un formulaire
d'inscription à une journée quelconque, je la réalise en html et
javascript car elle sera envoyé par mail, ce qui interdit tout autre
langage.
Dans un premier temps je demande à l'utilisateur s'il participe par un
bouton checked, si oui, alors c'est sensé dégriser les cases suivantes
et le problème que j'ai c'est que ça ne veut pas dégriser les boutins
radios:

Dans l'entête :
<script LANGUAGE="JavaScript">
function ChangeStatut(formulaire){

if(formulaire.Participation.checked
==true){formulaire.Presentation.disabled = false;
formulaire.transport.disabled = false;}

if(formulaire.Participation.checked == false)
{formulaire.Presentation.disabled = true;
formulaire.transport.disabled = true;}
</script>

Dans le formulaire :
<p><input name="Participation" value="YES"
onclick="ChangeStatut(this.form)" type="checkbox" /></p>
<input name="Presentation" value="YES" disabled="disabled"
type="checkbox" />

<input name="transport" value="avion" disabled="disabled" type="checkbox" />
<input name="transport" value="train" disabled="disabled" type="checkbox" />
<input name="transport" value="voiture" disabled="disabled"
type="checkbox"/>

Le fait que les objets portent le même nom semble poser problème et je
n'arrive pas à le contourner pour conserver l'avantage des boutons radio.
Merci de votre aide!

Seb

3 réponses

Avatar
ASM

je demande à l'utilisateur s'il participe par un
bouton checked, si oui, alors c'est sensé dégriser les cases suivantes
et le problème que j'ai c'est que ça ne veut pas dégriser les boutins
radios:

<script LANGUAGE="JavaScript">


les boutons radios et checkboxes
vont être grisés si le principal est non coché
(et le contraire si coché)

function ChangeStatut(formulaire){
var ok = !formulaire.Participation.checked;
var b = formulaire.Presentation;
for(var i=0;i<b.length;i++) b.disabled = ok;
var b = formulaire.transport;
for(var i=0;i<b.length;i++) b.disabled = ok;
}

les boutons radios on même noms
il sont représentés en JS par une collection (de ce nom)
tu dois donc repasser sur chacun de ceux qui portent ce nom

Par contre normalement des checkboxes
ne se regroupent pas dans une même collection

que se passe t-il si on en coche plusieurs ?
parfois ce peut être utile
l'est-ce dans ton cas ?

function ChangeStatut(formulaire){

if(formulaire.Participation.checked
==true){formulaire.Presentation.disabled = false;
formulaire.transport.disabled = false;}

if(formulaire.Participation.checked == false)
{formulaire.Presentation.disabled = true;
formulaire.transport.disabled = true;}
</script>

Dans le formulaire :
<p><input name="Participation" value="YES"
onclick="ChangeStatut(this.form)" type="checkbox" /></p>
<input name="Presentation" value="YES" disabled="disabled"
type="checkbox" />

<input name="transport" value="avion" disabled="disabled"
type="checkbox" />
<input name="transport" value="train" disabled="disabled"
type="checkbox" />
<input name="transport" value="voiture" disabled="disabled"
type="checkbox"/>



--
Stephane Moriaux et son [moins] vieux Mac

Avatar
Seb

les boutons radios et checkboxes
vont être grisés si le principal est non coché
(et le contraire si coché)

function ChangeStatut(formulaire){
var ok = !formulaire.Participation.checked;
var b = formulaire.Presentation;
for(var i=0;i<b.length;i++) b.disabled = ok;
var b = formulaire.transport;
for(var i=0;i<b.length;i++) b.disabled = ok;
}

les boutons radios on même noms
il sont représentés en JS par une collection (de ce nom)
tu dois donc repasser sur chacun de ceux qui portent ce nom

Par contre normalement des checkboxes
ne se regroupent pas dans une même collection

que se passe t-il si on en coche plusieurs ?
parfois ce peut être utile
l'est-ce dans ton cas ?

Exact, en fait je me suis trompé il s'agit bien de boutins "radio", merci


<input name="transport" value="avion" disabled="disabled"
type="radio" />
<input name="transport" value="train" disabled="disabled"
type="radio" />
<input name="transport" value="voiture" disabled="disabled"
type="radio"/>

Avatar
ASM

Exact, en fait je me suis trompé il s'agit bien de boutins "radio", merci


alors s'il n'y a que ces six là en radio-boutons
et qu'ils doivent tous ensemble suivre le mouvement

function ChangeStatut(formulaire){
var ok = !formulaire.Participation.checked;
for(var i=0;i<formulaire.length;i++)
if(formulaire[i].type=='radio') formulaire[i].disabled = ok;
}

--
Stephane Moriaux et son [moins] vieux Mac