2013-04-23 15 views
5

Mam tablicę zainicjowane w skrypciePrzypisywanie wybrać wartości list do tablicy

var listarray = new Array(); 

I mają dynamicznie utworzonej listy select ---

<select multiple size=6 width=150 style="width:150px" name="ToLB" > 
</select> 

Moje pytanie brzmi, jak przypisać wszystkie wartości select listę do tablicy. Z góry dzięki.

+0

Chcesz, aby wybrane pozycje zostały zapisane w tablicy? –

+0

Brak wszystkich pozycji listy. – NewBee

+0

Czy mogę wiedzieć, w jaki sposób lista wyboru jest tworzona dynamicznie? Przypuszczam, że podczas generowania opcji można użyć funkcji tablicowej 'push', aby wypełnić tablicę. http://www.w3schools.com/jsref/jsref_push.asp –

Odpowiedz

8

Można to zrobić jak :

JQuery-

var optionVal = new Array(); 
    $('select option').each(function() { 
      optionVal.push($(this).val()); 
     }); 

Javascript-

var x = document.getElementById("mySelect"); 
var optionVal = new Array(); 
for (i = 0; i < x.length; i++) { 
    optionVal.push(x.options[i].text); 
} 

tego sklepu s wszystkie opcje w polu wyboru w tablicy optionVal.

Mam nadzieję, że to pomoże.

4

Możesz użyć getElementsByTagName, aby uzyskać cały obiekt selectbox.

var el = document.getElementsByTagName('select') 

I w jQuery można to zrobić jak poniżej.

var arrayOfValues = $("select").map(function() { return this.value; }); 
+0

spójrz na http: // stackoverflow.com/questions/5866169/get-all-selected-values-of-a-multiple-select-box-when-click-on-a-button-u for more –

2

Używając zwykłego javascript jest to coś, co zadziałałoby dla Ciebie. Teraz, mam przyjąć, że masz co najmniej kilka opcji w select

html

<select id="selecty" multiple size=6 width=150 style="width:150px" name="ToLB" > 
    <option value="monkey">Monkey</option> 
</select> 

javascript

var listarray = new Array(); 
//NOTE: Here you used new as a variable name. New is a reserved keyword so you cant use that as a variable name. 

var select = document.getElementById('selecty'); #get the select list 

for(var i = 0; i < select.options.length; i++){ 
    listarray.push(select.options[i].value); 
} 
console.log(listarray); 
>> ["monkey"] 

Fiddle tutaj:

http://jsfiddle.net/mQH7P/

2
<html> 
<body> 
<!-- Any list (The main thing that it was built before the launch of the functions of the script) --> 
<select id = "mySelect" multiple size=6 width=150 style="width:150px" name="ToLB" > 
    <option value="1111"></option> 
    <option value="12"> </option> 
    <option value="123"></option> 
</select> 
<script> 
     var valuesList = new Array(); 
     var mySelect = document.getElementById("mySelect"); 
     var currentOption = mySelect.childNodes; 
     for (var i=1; i<currentOption.length; i = i+2) { // i+2 needed in order to pass text nodes 
      valuesList[i-1]=currentOption[i].value; 
     } 
</script> 
</body> 
</html> 

Wartości zostaną zapisane w twojej tablicy. Mam nadzieję, że rozumiem cię poprawnie.

Powiązane problemy