-2

我的 HTML 中有一个多选列表框。我想在javascript中获取列表框选定项的值

我的html代码:

<select id="schools" size="5" multiple="multiple">
<option value="352">Byskovskolen</option>
<option value="355">Heldagsskolen Specialtilbud</option>
<option value="372">Plejecenter Solbakken</option>
</select> 

我的Javascript代码:

function getData()
{
var allSchools = [];
 var s = document.getElementById("schools");
            alert("schools lenght  " + s.options.length);
            for (var i = 0; i < s.options.length; i++) {
                if (s.options[i].selected == true) {
                    var schoolid = s.options[i].value;
                    alert(s.options[i].value);
                        allSchools.push(schoolid);
                }
            }
}

值可以通过警报框看到警报,但不会存储在变量中。

我怎样才能将它存储在变量中。

4

4 回答 4

2

如果您注释/取消注释正确的行,它工作正常。尝试这个:

function getData() {
    var allSchools = [];
    var s = document.getElementById("schools");
    for (var i = 0; i < s.options.length; i++) {
        if (s.options[i].selected == true) {
            var schoolid = s.options[i].value;
            allSchools.push(schoolid);
        }
    }
    console.log(allSchools);
}

演示:http: //jsfiddle.net/4qYht/1/

于 2013-04-25T06:28:52.533 回答
0

您已经注释掉了主行,它将值存储在一个变量中。

// var schoolid = s.options[i].value;

除了你的代码的其余部分是完美的。

这是更正后的代码:

function getData()
 {
    var allSchools = [];
    var s = document.getElementById("schools");
    alert("schools lenght  " + s.options.length);
    for (var i = 0; i < s.options.length; i++) {
         if (s.options[i].selected == true) {
          //  var schoolid = s.options[i].value;
           alert(s.options[i].value);
           allSchools.push(schoolid);
         }
    }
  }

快乐编码:)

于 2013-04-25T06:44:35.757 回答
0

取消注释一行 (var schoolid) 并为 allSchools 变量添加打印输出。

function getData()
{
var allSchools = [];
var s = document.getElementById("schools");
        alert("schools lenght  " + s.options.length);
        for (var i = 0; i < s.options.length; i++) {
            if (s.options[i].selected == true) {
                var schoolid = s.options[i].value;
                allSchools.push(schoolid);
            }
        }
console.log(allSchools);
}
于 2013-04-25T06:34:09.883 回答
0

取消注释 schoolid 分配行

var schoolid = s.options[i].value;
allSchools.push(schoolid);

或者

使用allSchools.push(s.options[i].value);而不是allSchools.push(schoolid);

于 2013-04-25T06:37:09.647 回答