我有3个多选。在第一个Select1(左)中,我加载了一组模块。在第3个Select3(右)中,我加载了另一组模块。用户可以从左侧选择并点击添加以从左侧删除项目并将其附加到Select2(中间)。用户可以使用右侧相同的选项,选择不同的添加项,其中选项将附加到中间并从右侧删除。
一切正常。
我想让用户从中间多选中删除。我只想要删除一次。如果用户选择正式包含在左和右多选中的项目,我希望它们从中间移除并根据原始来自的位置附加到左和右。 我有一个变量设置来确定中间最初选择的模块的来源。
我遇到了从中间到左/右多个选择的实际追加/删除ITEM的问题。我用谷歌搜索并尝试了各种各样的东西,但它花了太长时间。
以下脚本仅显示与Left和Middle选择的交互。我将使用任何解决方案作为中间,正确关系的模型。
非常感谢任何帮助
<script src="js/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
$().ready(function() {
$('#add_mod').click(function() {
return !$('#select1_mod option:selected').remove().appendTo('#select2_mod');
});
$('#remove_mod').click(function() {
var x = "<%= str(modules) %>";
$("#select2_mod option:selected").each(function (i,selected) {
var thismod = $(this).text();
if (x.match(thismod))
// HELP Here I want to append this item (text and value) to Select1
// HELP Plus, remove this item from Select 2
//else after I get a solution for Left/Middle
});
// HELP And then return Select1, Select2, Select3
});
});
</script>
答案 0 :(得分:1)
<script type="text/javascript">
$().ready(function() {
$('#add_mod').click(function() {
return !$('#select1_mod option:selected').remove().appendTo('#select2_mod');
});
$('#remove_mod').click(function() {
var x = "<%= str(modules) %>";
var thisind = 0;
$("#select2_mod option:selected").each(function (index) {
var thismod = $(this).text();
var thisval = $(this).val();
if (x.match(thismod)) {
$(this).remove().appendTo('#select1_mod');}
else {
$(this).remove().appendTo('#select1_ms');}
});
});
$('#add_ms').click(function() {
return !$('#select1_ms option:selected').remove().appendTo('#select2_mod');
});
$('#remove_ms').click(function() {
return !$('#select2_ms option:selected').remove().appendTo('#select1_ms');
});
});
</script>