Faire apparaitre champ

Résolu
jordxn Messages postés 356 Date d'inscription   Statut Membre Dernière intervention   -  
Mihawk Messages postés 4315 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,



J'ai réussi a faire apparaître un champ email si l'utilisateur a coché le bouton oui et s'il coche non, aucun champ apparaît.

Sauf que quand je clique oui le champ apparaît et qu'après je clique non , le champs a coté de oui ne disparaît pas...
2eme soucis: j'aimerais rajouter un bouton "ajouter un autre email qui fasse apparaître un nouveau input , merci bcp !



<label for="partager" id="partager_label">Partager la tache</label>
<input type="radio" name="tem" value="oui" id="ooui" onclick="met(this,'oui','non');" ><label for="ooui">Oui</label> <input type="text" style="display:none" id="oui" value="Email"><br />
<input type="radio" name="tem" value="non" id="nnon" onclick="met(this,'non','oui');" ><label for="nnon">Non</label> <br />



javascript :
function met(btn,champ1)
{
if (btn.checked)
{
document.getElementById(champ1).style.display="inline";
}
}

3 réponses

Mihawk Messages postés 4315 Date d'inscription   Statut Contributeur Dernière intervention   846
 
Nouveau code :

<label for="partager" id="partager_label">Partager la tache</label>

<input type="radio" name="tem" value="oui" id="ooui" onclick="met(this, 'emailInput1');" >
<label for="ooui">Oui</label>

<input type="text" style="display:none" id="emailInput1" value="Email">
<br />

<input type="radio" name="tem" value="non" id="nnon" onclick="met(this, 'emailInput1');" >
<label for="nnon">Non</label>
<br />


<script type="text/javascript">
function met(btn, emailInputId){
     if (btn.checked && btn.value == "oui"){
          document.getElementById(emailInputId).style.display="inline";
     } else {
          if (btn.checked && btn.value == "non"){
               document.getElementById(emailInputId).style.display="none";
          } else {
               // Cas particulier qu'on ne gère pas
          }
     }
}
</script>

1
jordxn Messages postés 356 Date d'inscription   Statut Membre Dernière intervention   1
 
Merci beaucoup , sa marche très bien.
Dernière petite question : Si je veux rajouter un bouton "ajouter un autre email qui fasse apparaître un nouveau input, sa marche pareil ?
0
Mihawk Messages postés 4315 Date d'inscription   Statut Contributeur Dernière intervention   846
 
Tu n'as pas besoin de recopier le code Javascript ; il te suffit de reprendre le code HTML, de le coller, et de modifier les trois occurrence de "emailInput1" en les remplaçant par un autre nom ; par exemple "emailInput2".

Et ainsi de suite si tu veux en mettre d'autres.
0
jordxn Messages postés 356 Date d'inscription   Statut Membre Dernière intervention   1
 
Merci, j'ai essayé :

<label for="partager" id="partager_label">Partager la tache</label>

<input type="radio" name="tem" value="oui" id="ooui" onclick="met(this, 'emailInput1');" >
<label for="ooui">Oui</label>

<input type="text" style="display:none" id="emailInput1" value="Email">
<input type="button" style="display:none" id="emailInput1" value="Ajouter un autre email">
<input type="text" style="display:none" id="emailInput2" value="Email">
<br />

<input type="radio" name="tem" value="non" id="nnon" onclick="met(this, 'emailInput1');" >
<label for="nnon">Non</label>
<br />


J'aurais aimé que le bouton Ajouter un autre email apparaisse en même que le premier champ email c'est pour cela que j'ai mis le même id et qu'ensuite si l'utilisateur clique sur le bouton , l'autre champ email apparaisse...
0
Mihawk Messages postés 4315 Date d'inscription   Statut Contributeur Dernière intervention   846
 
Ah mais les autres e-mails n'ont pas de radiobutton oui/non ??
0
Mihawk Messages postés 4315 Date d'inscription   Statut Contributeur Dernière intervention   846
 
Combien tu veux ajouter d'e-mail au juste ?
0
Mihawk Messages postés 4315 Date d'inscription   Statut Contributeur Dernière intervention   846
 
Hello,

Avant de s'occuper de l'ajout, il faut déjà purifier ton code qui contient beaucoup d'incohérence.

1/ Pourquoi utiliser des radiobutton alors qu'un checkbox serait suffisante ?

2/ Ta fonction Javascript "met()" prend 2 paramètres mais quand tes boutons l'appellent (dans les onClick) tu en envoies trois ; le dernier est donc inutile.

3/ Ta fonction met() appelle un élément donc l'ID est "champ1" ; j'aimerais bien voir son code HTML également.
0
jordxn Messages postés 356 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour, pour tout dire, je ne savais pas comment faire alors j'ai trouver un code tout fait sur internet dont j'ai essayer de modifier certaine chose mais j'ai pas su modifier tout...

Je n'ai que sa comme code....
0
Mihawk Messages postés 4315 Date d'inscription   Statut Contributeur Dernière intervention   846
 
Tu devrais te plonger un chouïa dans l'apprentissage au moins du HTML !
0
jordxn Messages postés 356 Date d'inscription   Statut Membre Dernière intervention   1
 
J'ai terminer mon site web , donc je maitrise assez bien le html ,
C'est plutot les fonctions etc que j'ai du mal.

Donc en quoi je pourrais l'améliorer ?
0
jordxn Messages postés 356 Date d'inscription   Statut Membre Dernière intervention   1
 
En quoi je pourrais l'améliorer svp :
Sachant que je trouve cela plus joli avec des buttons radios sur mon site :


<label for="partager" id="partager_label">Partager la tache</label>
<input type="radio" name="tem" value="oui" id="ooui" onclick="met(this,'oui');" ><label for="ooui">Oui</label> <input type="text" style="display:none" id="oui" value="Email"><br />
<input type="radio" name="tem" value="non" id="nnon" onclick="met(this,'non');" ><label for="nnon">Non</label> <br />



javascript :
function met(btn,oui)
{
if (btn.checked)
{
document.getElementById(oui).style.display="inline";
}
}




Merci
0
Mihawk Messages postés 4315 Date d'inscription   Statut Contributeur Dernière intervention   846
 
Rappelle moi quel comportement tu recherches ?
0
jordxn Messages postés 356 Date d'inscription   Statut Membre Dernière intervention   1
 
Quand je clique sur oui , le champ input apparait, c'est le cas grace a la fonction
mais j'aimerais le faire disparaitre si l'utilisateur clique sur oui puis change d'avis et cliques sur non car la il reste le champs email...
0
Mihawk Messages postés 4315 Date d'inscription   Statut Contributeur Dernière intervention   846
 
Alors on a besoin de voir le code du champ email !!
0
jordxn Messages postés 356 Date d'inscription   Statut Membre Dernière intervention   1
 
Il est présent ci-dessus...

<input type="text" style="display:none" id="oui" value="Email"><br />
0
Mihawk Messages postés 4315 Date d'inscription   Statut Contributeur Dernière intervention   846
 
Ah pardon, il va falloir que tu apprennes à structurer ton code !

<label for="partager" id="partager_label">Partager la tache</label> 

<input type="radio" name="tem" value="oui" id="ooui" onclick="met(this,'oui');" > 
<label for="ooui">Oui</label> 

<input type="text" style="display:none" id="oui" value="Email">
<br /> 

<input type="radio" name="tem" value="non" id="nnon" onclick="met(this,'non');" > 
<label for="nnon">Non</label> 

<br />  
0