0

我有 3 个多项选择。在第一个 Select1(左)中,我加载了一组模块。在第三个 Select3(右)中,我加载了另一组模块。用户可以从左侧选择并点击添加以从左侧删除项目并将其附加到 Select2(中间)。用户可以对 Right 执行相同操作,选择项目点击不同的添加,其中选择将附加到中间并从 Right 中删除。

这一切都很好。

我想让用户从中间多选中删除。我只想要一次 remove 。如果用户选择了正式包含在左右多选中的项目,我希望将它们从中间删除并根据原始来源的位置附加到左右。我有一个变量设置来确定中间选择的模块最初来自哪里。

我在从中间回到左/右多选的实际附加/删除项目时遇到问题。我用谷歌搜索并尝试了各种方法,但时间太长了。

以下脚本仅显示与左选择和中选择的交互。我将使用任何解决方案作为中右关系的模型。

任何帮助将不胜感激

<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>  
4

1 回答 1

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>
于 2010-10-23T14:23:43.407 回答