Jquery удалить / добавить элемент из множественного выбора в множественный выбор - PullRequest
0 голосов
/ 20 октября 2010

У меня есть 3 множественных выбора. В первом Select1 (слева) я загружаю группу модулей. В 3-м Select3 (справа) я загружаю другую группу модулей. Пользователь может выбрать слева и нажать кнопку «Добавить», чтобы удалить элемент слева и добавить его в Select2 (в центре). Пользователь может сделать то же самое с правым, выбрать элементы, попадающие в другое дополнение, где выборы будут добавлены к середине и удалены справа.

Это все отлично работает.

Я хочу, чтобы пользователь мог удалить из среднего мульти-выбора. Я хочу только один случай удаления. Если пользователь выбирает элементы, которые формально содержались как в левом, так и в правом множественном выборе, я хочу, чтобы они были удалены из середины и добавлены в левую и правую части в соответствии с происхождением оригинала. У меня есть переменная настройка, чтобы определить, откуда изначально появился модуль, выбранный в середине.

У меня проблемы с фактическим добавлением / удалением ПУНКТА от середины к левому / правому множественному выбору. Я гуглил и пробовал разные вещи, но это заняло слишком много времени.

Следующий скрипт показывает только взаимодействие с левым и средним выбором. Я буду использовать любые решения в качестве модели для отношений Middle, Right.

Любая помощь будет принята с благодарностью

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

1 Ответ

1 голос
/ 23 октября 2010

ответ, как обычно, был действительно прост в конце.

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...