多个选择框 - 将值获取到数组中

时间:2017-09-24 15:47:50

标签: javascript

我有一个选择框,从ajax填充选项。 我还有一个按钮,点击它时克隆选择框。

<select name="subcat[0]" id="subcat">
  <option>1</option>
  <option>2</option>
  <option>3</option>
</select>
<button name="addmore">Add More</button>

当我点击添加更多时,它将克隆subcat并递增它,因此名称是subcat [1]等...

我需要能够捕获每个选择的所有值并将它们放在一个数组中。 我的问题是,即使用户再次更改了他的选择选项,它仍然会保留最后一个值。

var elem = document.getElementById('subcat')
var points = [];
for(var i=0,len=elem.length;i<len;i++){    
  if (elem[i].selected){    
    points.push(elem[i].value);                 
  }
}

如果用户刚刚更改了相同的选项,如何删除所选的最后一个选项?

2 个答案:

答案 0 :(得分:0)

你可以存储最后选择的并且可以将它从数组中拼接出来,如果我没记错的话你可以拼接如果这样(假设x有最后一个值):

if(x==elem[i].selected){
    elem[i].splice(i,1);  //cuts one index in the array where x occurs
]

答案 1 :(得分:0)

var elem = document.getElementById('subcat')
var points = [];
for(var i=0,len=elem.length;i<len;i++){

  if (elem[i].selected){
    if(points[points.length-1] == elem[i].value){
      points.pop();
    }
    points.push(elem[i].value);

  }
}