如何在duallistbox上获得单一值而非所有选定值,这是我迄今为止所尝试的
$(document).on("click", ".move", function(){
alert( $(".agentItems").val() )
});
$(document).on("click", ".remove", function(){
alert( $(".agentItems").val() )
});
但我希望根据他选择的选项(移动/移除)获得单个值,因此如果我想移动One, wand
,我会<option value="1">One, Wand</option>
或1
alert()
1}}并非所有选择
这是 JSFIDDLE :http://jsfiddle.net/sdxaV/19/
这是我使用的DUALLISTBOX:http://www.virtuosoft.eu/code/bootstrap-duallistbox/
编辑1
测试我的jsfiddle,尝试移动One, wand
然后您将获得值1,2,4
而不是1
,请获取有关如何获取移动值的帮助。
答案 0 :(得分: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;
};
答案 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
});