Menu deroulant

davinz Messages postés 5 Date d'inscription mercredi 11 juin 2003 Statut Membre Dernière intervention 24 novembre 2004 - 24 nov. 2004 à 11:16
chimelpremier Messages postés 544 Date d'inscription vendredi 5 décembre 2003 Statut Membre Dernière intervention 20 mai 2005 - 24 nov. 2004 à 23:48
Bonjour,

J'ai un menu déroulant avec comme option "Autre". Lorsque celle-ci est sélectionnée, je souhaiterais que cela fasse apparaître un champ texte à droite du menu afin que le visiteur puisse entrer lui-même la donnée.
Je trouve des solutions qui font afficher un DIV mais ce que je veux, j'avais déjà cherché cette solution auparavant mais ne retrouve plus la source....Une petite piste, un indice please?

Merci

4 réponses

chimelpremier Messages postés 544 Date d'inscription vendredi 5 décembre 2003 Statut Membre Dernière intervention 20 mai 2005
24 nov. 2004 à 14:16
Tu n'as plus qu'à modifier pour rendre le champs visible que si autre est sélectionné :
<html><head><title>Test</title>
<script type="text/javascript">
<!--
var valeur = 1;
function ajout() {
var position=null;
if(document.all)position=document.getElementsByName("choix")[0].length;
var element = document.createElement("option");
element.text = document.getElementsByName("saisie")[0].value;
element.value = valeur;
valeur += 1;

document.getElementsByName("choix")[0].add(element,position);
}
//-->
</script>
</head>
<form name="formulaire" action="">
<select name="choix" >
<option >option1</option>
<option >option2</option>
<option >option3</option>
<option >autre</option>
</select>


</form>
</html>
0
davinz Messages postés 5 Date d'inscription mercredi 11 juin 2003 Statut Membre Dernière intervention 24 novembre 2004
24 nov. 2004 à 22:01
Arf! Presque ça...

Je pense que document.write est mon ami pour ce que je veux faire.
Je voudrais que ce qui est dans le document.write s'affiche dans ma page, mais sans effacer le reste!

<html><head><title>Test</title>
</head>
<form name="formx" action="">
<select name="selectx" onChange="test()">
<option value="option1">option1</option>
<option value="option2">option2</option>
<option value="option3">option3</option>
<option value="Autre">Autre</option>
</select>

<script type="text/javascript">
function test() {
if(document.formx.selectx.value="Autre") {
document.write(' ');
}
}
</script>

</form>
</html>

--------------------------------------------

2ème essai

j'ai essayé d'arriver à mes fin en jouant sur la visibilité de l'objet input. mais là j'ai une erreur qui vient du fait que je le rende invisible au chargement de la page.

<html><head><title>Test</title>
<script type="text/javascript">
function invisibl() {
document.formx.inputX.style.visibility = 'hidden';
}
function test() {
if(document.formx.selectx.value="Autre") {
document.formx.niputX.style.visibility = 'visible';
}
}
</script>
</head>
<form name="formx" action="">
<select name="selectx" onChange="test()">
<option value="option1">option1</option>
<option value="option2">option2</option>
<option value="option3">option3</option>
<option value="Autre">Autre</option>
</select>
précisez:

</form>
</html>

Grrrrhh j'en suis pas loin!

Merci de m'indiquer le dernier bout de chemin...
0
davinz Messages postés 5 Date d'inscription mercredi 11 juin 2003 Statut Membre Dernière intervention 24 novembre 2004
24 nov. 2004 à 22:06
Ourahhhh Ca marche dans le 2ème essai.
J'avais mis 'niput' au lieu de 'input'. hum!

Ouf!

Mais je suis toujours intéressé par la solution avec le document.write!

Merci
0
chimelpremier Messages postés 544 Date d'inscription vendredi 5 décembre 2003 Statut Membre Dernière intervention 20 mai 2005
24 nov. 2004 à 23:48
En dynamique, il faut utiliser DOM car la méthode write() ne fonctionne pas. Voilà, ça marche sur IE et Gecko :

<html><head><title>Test</title>
<script type="text/javascript">
<!--
var valeur = 1;

function ajout() {
var position=null;
objsaisi=document.getElementsByName("saisie")[0];
if(document.all)position=objchoix.length;
var element = document.createElement("option");
element.text = objsaisi.value;
element.value = valeur;
valeur += 1;
objchoix.add(element,position);
objopt.visibility="hidden";
}

function test() {
objchoix=document.getElementsByName("choix")[0];
objopt=document.getElementById('opt').style;
if(objchoix.value=="Autre") {
objopt.visibility="visible";
}
}
//-->
</script>
</head>
<form >
<select name="choix" onChange="test()">
<option>option1</option>
<option>option2</option>
<option>option3</option>
<option value="Autre">Autre</option>
</select>

</form>
</html>
0
Rejoignez-nous