Inserer un champ dépendant d'un autre
Ishantiberia
-
Alain_42 Messages postés 5413 Statut Membre -
Alain_42 Messages postés 5413 Statut Membre -
Bonjour,
Je souhaiterais insérer un champ qui soit :
1- dépendant d'un premier choix situé dans un menu déroulant
2- masqué si celui-ci n'est pas applicable au champ sélectionné
Actuellement, je suis dans cette configuration :
<td>Service:</td>
<select name="Service">
<option name="Approvisionnement">Approvisionnement</option>
<option name="Autre">Autre :</option><input id="autre" name="autre" type="text" [MON PROBLEME !!!]
</select>
</td>
Je voudrais qu'un champ texte soit inséré après le "Autre:" afin que la personne précise son service, mais que ce champ ne soit pas visible si la personne choisit le champ "Approvisionnement" par exemple.
J'espère être compréhensible...
Auriez-vous une idée pour m'aider ?
Je souhaiterais insérer un champ qui soit :
1- dépendant d'un premier choix situé dans un menu déroulant
2- masqué si celui-ci n'est pas applicable au champ sélectionné
Actuellement, je suis dans cette configuration :
<td>Service:</td>
<select name="Service">
<option name="Approvisionnement">Approvisionnement</option>
<option name="Autre">Autre :</option><input id="autre" name="autre" type="text" [MON PROBLEME !!!]
</select>
</td>
Je voudrais qu'un champ texte soit inséré après le "Autre:" afin que la personne précise son service, mais que ce champ ne soit pas visible si la personne choisit le champ "Approvisionnement" par exemple.
J'espère être compréhensible...
Auriez-vous une idée pour m'aider ?
A voir également:
- Inserer un champ dépendant d'un autre
- Insérer video powerpoint - Guide
- Insérer signature word - Guide
- Insérer un sommaire word - Guide
- Insérer un filigrane word - Guide
- Insérer liste déroulante excel - Guide
1 réponse
Salut,
déja pour option ce n'est pas comme ça:
<option name="Approvisionnement">Approvisionnement</option>
il faut:
ensuite tu ne peux pas mettre de champ input au milieu de balises <select
Pour ton pb tu peux faire par javascript:
déja pour option ce n'est pas comme ça:
<option name="Approvisionnement">Approvisionnement</option>
il faut:
<option value="Approvisionnement">Approvisionnement</option>
ensuite tu ne peux pas mettre de champ input au milieu de balises <select
Pour ton pb tu peux faire par javascript:
<script language="javascript">
function affiche_champ(){
var obj=document.getElementById('Service');
var choix=obj.value;
if(choix == "Apprivisionnement"){
var obj2=document.getElementById('champ_ajoute');
obj2.innerHTML="Complement: <input type="text" id="autre" name="autre" >";
}else{
var obj2=document.getElementById('champ_ajoute');
obj2.innerHTML="";
}
</script>
<td>Service:</td>
<select name="Service" id="Service" onChange=" affiche_champ();">
<option name="Approvisionnement">Approvisionnement</option>
<option name="Autre">Autre :</option>
</select>
</td>
<div id="champ_ajoute"><!-- la serra ecrit le nouveau champ --></div>
Où dois-je mettre mon java script ? J'ai testé dans le <head> et dans un fichier séparé, rien a faire : j'ai une ligne supplémentaire qui apparait en dessous de mon <select> avec le texte pour "champ_ajoute" mais ce texte reste quelque soit le choix fait auparavant...
j'avais qq erreurs dans mon code, fait un peu trop rapidement, voici qq chose de plus complet et qui fonctionne
<html> <head> <script language="javascript"> function affiche_champ(){ var obj=document.getElementById('Service'); var choix=obj.value; if(choix == "Approvisionnement"){ var obj2=document.getElementById('champ_ajoute'); obj2.innerHTML="Complement: <input type=\"text\" id=\"autre\" name=\"autre\" >"; }else{ var obj2=document.getElementById('champ_ajoute'); obj2.innerHTML=""; } } </script> </head> <body> <table> <tr> <td>Service:</td> <td> <select name="Service" id="Service" onChange=" affiche_champ();"> <option value="0" selected>Choisissez</option> <option value="Approvisionnement">Approvisionnement</option> <option value="Autre">Autre :</option> </select> </td> </tr> </table> <div id="champ_ajoute"> <!-- la serra ecrit le nouveau champ --> </div> </body> </html>