0

私は3つの複数の選択を持っています。最初のSelect1(左)で、モジュールのグループをロードします。3番目のSelect3(右)で、モジュールの別のグループをロードします。ユーザーは、左から選択して追加を押すと、左からアイテムを削除して、Select2(中央)に追加できます。ユーザーは右で同じことを行うことができます。選択したアイテムが別の追加にヒットすると、選択が中央に追加され、右から削除されます。

これはすべて正常に機能します。

ユーザーが中央の複数選択から削除できるようにしたい。削除を1回だけ実行したい。ユーザーが左と右の両方の複数選択に正式に含まれていたアイテムを選択した場合、それらを中央から削除し、元の場所に応じて左と右に追加します。真ん中で選択したモジュールが元々どこから来たのかを判断するための可変設定があります。

アイテムの真ん中から左/右への複数選択への実際の追加/削除に問題があります。私はグーグルでいろいろなことを試しましたが、時間がかかりすぎました。

次のスクリプトは、左選択と中央選択との相互作用のみを示しています。私は、ミドル、ライトの関係のモデルとして、あらゆるソリューションを使用します。

どんな助けでも大歓迎です

<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 に答える