Partage
  • Partager sur Facebook
  • Partager sur Twitter

[JS]Récupérer la valeur d'un select

3 août 2008 à 16:21:38

Salut

J'ai un script qui contient un formulaire, qui contient à son tour une liste déroulante. Cette liste est de la forme :
<input name="ville" id="ville" type="text" readonly="true" value="" />
<input name="id_ville" id="id_ville" type="text" readonly="true" value="" />
<select name="select" size="1" id="select" onchange="change_valeur();">
  <option value="1">Paris</option>
  <option value="2">Marseille</option>
  <option value="3">Lyon</option>
</select>


Voici la fonction JS :
function () {
document.getElementById('id_ville').value=document.getElementById('').value; 
}


Donc ça fonctionne si je veux mettre la valeur de la liste dans le champs id_ville. Cependant je voudrais faire de même sauf que je voudrais que dans la liste "ville" il y est le texte du select (Paris, Marseille ou Lyon).

Pouvez-vous m'aider SVP ?

Merci ;)

@+
  • Partager sur Facebook
  • Partager sur Twitter
3 août 2008 à 16:50:31

Je suis pas sûr d'avoir tout compris, mais pour récupérer le texte du 1er choix du select, tu peux utiliser : document.getElementById('select').options[0].value

  • Partager sur Facebook
  • Partager sur Twitter
3 août 2008 à 17:14:39

je ne veux pas forcément le 1er choix du select, je veux celui qui a été choisi :
<select name="select" size="1" id="select" onchange="change_valeur();">
  • Partager sur Facebook
  • Partager sur Twitter
3 août 2008 à 17:20:05

Roooh, obligé de tout faire ici ! xD (je pensais que ça te mettrait sur la voie ^^)

function change_valeur() {
select = document.getElementById("select");
choice = select.selectedIndex  // Récupération de l'index du <option> choisi

valeur_cherchee = select.options[choice].value; // Récupération du texte du <option> d'index "choice"
  • Partager sur Facebook
  • Partager sur Twitter
3 août 2008 à 18:48:36

Donc :

function () {
document.getElementById('id_ville').value=document.getElementById('').value; 
select = document.getElementById("select");
choice = select.selectedIndex;
valeur_cherchee = select.options[choice].value;
document.getElementById('ville').value=; 
}


C'est ça ?
  • Partager sur Facebook
  • Partager sur Twitter
3 août 2008 à 19:27:03

Ta dernière ligne devrait normalement être :
document.getElementById('ville').value = valeur_cherchee;


Mais je ne comprends pas pourquoi tu appelles document.getElementById('').value a la première ligne ... tu fais référence à quoi ?
  • Partager sur Facebook
  • Partager sur Twitter
3 août 2008 à 20:38:41

c'est pour modifier le second champ de texte.
  • Partager sur Facebook
  • Partager sur Twitter
3 août 2008 à 20:55:50

function change_valeur() {
select = document.getElementById("select");
choice = select.selectedIndex;
valeur = select.options[choice].value;
texte = select.options[choice].text;
document.getElementById('id_ville').value = valeur;
document.getElementById('ville').value = texte;
}


Désolé, ça change un peu de ce que j'avais dit au départ, mais je viens de comprendre ce que tu veux réellement je crois ^^

select.options[choice].value récupère le contenu de l'attribut value de l'option sélectionnée.
select.options[choice].text récupère le texte entre les deux balises de l'option sélectionnée.
  • Partager sur Facebook
  • Partager sur Twitter
3 août 2008 à 21:08:17

j'ai modifié l'id du select en Liste2

Est-ce que c'est bon pour l'affichage du texte : document.getElementById('ville').value = select.options.document.getElementById("Liste2").selectedIndex;.text;
  • Partager sur Facebook
  • Partager sur Twitter
3 août 2008 à 21:12:18

Houlàà je comprends pas très bien là...

Tout est pourtant clair non ? Tu as changé l'id du select, donc tu as :

<input name="ville" id="ville" type="text" readonly="true" value="" />
<input name="id_ville" id="id_ville" type="text" readonly="true" value="" />
<select name="Liste2" size="1" id="select" onchange="change_valeur();">
  <option value="1">Paris</option>
  <option value="2">Marseille</option>
  <option value="3">Lyon</option>
</select>


Et le JS :

function change_valeur() {
select = document.getElementById("Liste2");
choice = select.selectedIndex;
valeur = select.options[choice].value;
texte = select.options[choice].text;
document.getElementById('id_ville').value = valeur;
document.getElementById('ville').value = texte;
}
  • Partager sur Facebook
  • Partager sur Twitter
18 juin 2013 à 10:58:08

chez moi ça ne récupère pas du tout de valeur alors que la syntaxe de l'appel de la valeur est juste.

-
Edité par amir1206 18 juin 2013 à 11:03:22

  • Partager sur Facebook
  • Partager sur Twitter