Question

I have an array initialised in script

var listarray = new Array(); 

And have a dynamically created select list ---

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

My question is how to assign all values of select list to the array. Thanks in advance.

Was it helpful?

Solution

You can do this like :

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);
}

This stores all the options in your select box in the array optionVal.

Hope it helps you.

OTHER TIPS

You can use getElementsByTagName to get all the selectbox as object.

var el = document.getElementsByTagName('select')

And in jQuery you can do it as below.

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

Using plain javascript this is something that would work for you. Now, I've assumed that you have at least some options in your 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 here:

http://jsfiddle.net/mQH7P/

<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>

The values ​​will be stored in your array. I hope I understand you correctly.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top