2017-09-24 21 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