2017-04-26 3 views
1

J'utilise Web2Py pour envoyer une liste de valeurs à mon avis.Javascript comment obtenir l'ID de l'article sélectionné

Mon HTML est comme ceci:

<select id="DestinationOptions" onchange="SetDest(this)"> 
    {{for key, value in dirList.iteritems():}} 
     <option name="DirListItem{{=key}}" id="{{=key}}"> {{=value}}</option> 
    {{pass}} 
</select> 

Mon javascript est comme ceci:

function SetDest(destComboBxID) 
{ 
    alert(destComboBxID.id); 
    var e = document.getElementById(destComboBxID); 
    var path = e.option[e.selectedIndex].value; 
    alert(path); 
    //document.cookie = "GD_"+file.id + "=" + file.id + ";"; 
} 

Je reçois seulement au premier alert() puis-je obtenir l'erreur suivante quand je debug dans le Brower:

Uncaught TypeError: Cannot read property 'options' of null

Q : Comment puis-je obtenir l'ID de la valeur selcted?

+0

Note: votre 'template' est comme ça, pas' 'html' –

+0

remplacer var e = document.getElementById (destComboBxID),' 'avec var e = destComboBxID;' –

+0

si ce n'est pas du HTML, comment l'appellerais-tu? C'est à partir d'un fichier * .html ... – fifamaniac04

Répondre

2

Vous pouvez ajouter un EventListener au champ de sélection. Quand il change, vous pouvez obtenir l'ID de l'option sélectionnée en utilisant e.target.options[e.target.selectedIndex].getAttribute('id').

document.getElementById('DestinationOptions').addEventListener('change', function(e) { 
 
    console.log(e.target.options[e.target.selectedIndex].getAttribute('id')); 
 
});
<select id="DestinationOptions"> 
 
    <option id="1">Hello</option> 
 
    <option id="2">World</option> 
 
</select>

0
<select id="DestinationOptions" ="SetDest(this.id)"> 
+0

Donc, je pense que si le code utiliser (ce) mot-clé seulement il renverra l'objet se référera à ce choix non c'est ID puis à l'intérieur de la fonction il l'utilisera comme identifiant donc je pense que la solution est d'utiliser (this.id). – Osama