2015-12-28 72 views
0

如何獲得單值沒有所有選定的duallistbox值,這是我到目前爲止已經試過如何獲得價值,當我點擊移動/移除duallist按鈕 - JQUERY

$(document).on("click", ".move", function(){ 
    alert($(".agentItems").val()) 
}); 

$(document).on("click", ".remove", function(){ 
    alert($(".agentItems").val()) 
}); 

但我想根據自己選擇的選項單一值(移動/刪除),所以如果我想移動One, wand,我將獲得alert()<option value="1">One, Wand</option>1不是所有選擇

enter image description here

這是的jsfiddlehttp://jsfiddle.net/sdxaV/19/

,這是我用過的DUALLISTBOX:http://www.virtuosoft.eu/code/bootstrap-duallistbox/

編輯1

測試我的jsfiddle,嘗試移動One, wand然後你會得到價值1,2,4,而不是1,請幫助如何獲得移動的價值。

回答

0

我檢查你的小提琴,在這條線

<select multiple="multiple" name="agentItems" class="agentItems"> 

您將選擇多個。嘗試刪除它,你應該沒問題。

更新: 我改變了你的小提琴,並添加了你應該改變的讚揚線。它會讓你獲得最新的選擇。不要改變我之前說過的html。

$(document).on("click", ".move", function(){ 
    var latest_value = $("option:selected:last").val(); 
    alert(latest_value)//option:selected:last will give you latest value of select so you can use it according to your need 
}); 

$(document).on("click", ".remove", function(){ 
    var latest_value = $("option:selected:last").val(); 
    alert(latest_value)//same goes here 
}); 
+0

嘗試過,但它只能選擇一項,或者選擇一個新的 –

+0

刪除過去不你試圖達到什麼目的?我想我錯了你,對不起。你能告訴我它究竟應該做什麼嗎?我很樂意幫助你。 –

+0

我想要傳遞的數據,所以我可以使用它在AJAX和PHP SQL插入,我不想重新插入/刪除它,所以當我點擊該按鈕「移動」,我會得到該移動項目的值。 –

1

得到它使用此,感謝@ GNi33, 這裏是http://jsfiddle.net/sdxaV/26/

var result = $(".agentItems").val(); 

console.log(result); 

$(document).on("click", ".move", function(){ 
    var diff = arr_diff(result, $(".agentItems").val()); 

    console.log(diff); 

    result = $(".agentItems").val(); 
}); 

$(document).on("click", ".remove", function(){ 
    var diff = arr_diff(result, $(".agentItems").val()); 

    console.log(diff); 
    result = $(".agentItems").val(); 
}); 


function arr_diff (a1, a2) { 

     a1 = a1 || []; 
    a2 = a2 || []; 

    var a = [], diff = []; 

    for (var i = 0; i < a1.length; i++) { 
     a[a1[i]] = true; 
    } 

    for (var i = 0; i < a2.length; i++) { 
     if (a[a2[i]]) { 
      delete a[a2[i]]; 
     } else { 
      a[a2[i]] = true; 
     } 
    } 

    for (var k in a) { 
     diff.push(k); 
    } 

    return diff; 
};