2013-04-25 31 views
-2

我的HTMl中有一个多选列表框。 我想在javascript列表框的选择项的值。如何在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); 
       } 
      } 
} 

值可以看出,用警报提醒但没有存储在变量中。

如何将它存储在变量中。

+0

注释掉主线BRO) – dreamweiver 2013-04-25 06:45:12

+0

这是错误,而将代码复制到这个问题做。当我在alertbox中显示schoolid时显示未定义。 – 2013-04-25 06:57:35

+0

:我在Jsfiddle上复制了相同的内容,http://jsfiddle.net/dreamweiver/AHA4a/。只是忽略了我在那里使用Jquery进行点击事件启动,但是你的代码是完整的,我没有对它做任何改变。 – dreamweiver 2013-04-25 07:07:50

回答

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

DEMO:http://jsfiddle.net/4qYht/1/

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

取消对schoolid分配行

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

使用allSchools.push(s.options[i].value);代替allSchools.push(schoolid);

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

编码愉快:)

相关问题