2017-09-24 20 views
0

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

如何删除最后一个选项,如果用户只是改变了相同的选择?

回答

0

您可以将最后选择的,并且可以从阵列拼接它,如果我没有记错可以拼接,如果是这样的(假设x有最后一个值):

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

    } 
} 
+0

如果我这样做比它只比较最后一个值,但如果值可以在两者中都会导致问题。我需要检查它是否从同一选定列表中选择,如果它是删除它 – user2902337