繁体   English   中英

多个选择框-将值放入数组

[英]multiple select boxes - getting values into an array

我有一个选择框,这些选项是从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);                 
  }
}

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

您可以存储最后选择的内容并可以从数组中进行拼接,如果我没记错的话,您可以进行如下拼接( 假设x具有最后一个值 ):

if(x==elem[i].selected){
    elem[i].splice(i,1);  //cuts one index in the array where x occurs
]
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);

  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM