2009-12-15 11 views
2

salut j'ai besoin d'obtenir toutes les valeurs sélectionnées dans une liste déroulante. S'il vous plaît voir l'exemple.multiple select

<html> 
<head> 
<script> 
function getSelected() 
{ 
alert(document.myform.mytextarea.value); 
return false; 
} 
</script> 
<title></title> 
</head> 
<body> 
<form name=myform> 
<select id=mytextarea size=3 multiple> 
<option id=one value=one> one </option> 
<option id=two value=two> two </option> 
<option id=three value=three> three </option> 
<option id=four value=four> four </option> 
</select> 
<input type="button" onclick="getSelected();"/> 
</form> 
</body> 
</html> 

Comment faire pour récupérer toutes les multiples valeurs sélectionnées dans le dropdown.Rightnow Je reçois qu'une seule valeur

Répondre

2

Essayez cette fonction

function getSelected() 
    { 
     var lst = document.myform.mytextarea; 
     for (var i = 0; i < lst.options.length; i++) 
      if (lst.options[ i ].selected) 
       alert(lst.options[ i ].value); 
     return false; 
    } 

trouvés ici

How to get selected items from using Javascript

+0

Cela fonctionnera-t-il même si la boîte 'select' n'a pas d'attribut' name'? – Asaph

+0

Je l'ai testé et ça a bien fonctionné. –

+0

Vous devez simplifier la référence à 'document.myform.mytextarea.options'. L'accès multiple est très inefficace. –

0

Essayez cette

function getSelected() 
{ 
for(var i=0; i <= document.myform.mytextarea.options.length - 1; i++) 
{ 
    if(document.myform.mytextarea.options[i].selected) 
    { 
     alert(document.myform.mytextarea.options[i].value); 
    } 
} 
return false; 
} 
+0

Cette réponse a déjà été envoyée –

0

Vous pouvez essayer quelque chose comme:

var select = document.getElementById('mytextarea'); 
var selected = new Array(); 
for (var i = 0; i < select.options.length; i++) { 
    if (select.options[i].checked) { 
     selected.push(select.options[i]); 
    } 
} 
0

Essayez ceci:

function getSelected() { 
    var selections = new Array(); 
    var options = document.getElementById('mytextarea').options; 
    for (var i=0; i<options.length; i++) { 
     if (options[i].selected) { 
      selections[selections.length] = options[i].value; 
     } 
    } 
    return selections; 
} 
+0

Vous pouvez utiliser push() pour pousser des valeurs dans un tableau. – rahul

4

Vous pouvez utiliser quelque chose comme ça

function getSelected() 
{ 
    var dropDownElem = document.getElementById ("mytextarea"); 
    var selectedValues = new Array(); 
    var dropDownLength = dropDownElem.length; 

    for (var i=0; i < dropDownLength; i++) 
    { 
     if (dropDownElem.options[i].selected) 
     { 
      selectedValues.push (dropDownElem.options[i].value); 
     } 
    } 

    alert (selectedValues.toString()); // gets the values separated by ',' 
    alert (selectedValues.join(';')); // gets the values separated by ';' 
} 

Remarque

également une bonne pratique pour déplacer votre javascript de côté HTML. Supprimez le gestionnaire onclick du HTML et liez-le dans votre balise <script>.

+0

+1 pour votre note de fin. Cependant, vous devriez simplifier 'dropDownElem.options' –

Questions connexes