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> 

私はそれが[1]、などSUBCATのクローンを作成し、名前がSUBCATあるので、それをインクリメントしますより多くの追加]をクリックします...

それらを単一の配列に入れます。 私の問題は、ユーザーが再び彼の選択オプションを変更しても、最後に選択された値を維持するということです。

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

関連する問題