2016-05-20 8 views
-1

Предположим, у меня есть 2 выпадающих меню. Мое требование: при выборе опции в первом раскрывающемся списке этот параметр следует удалить из другого раскрывающегося списка и при отмене этой опции из первого раскрывающегося списка этот параметр должен быть доступен в другом раскрывающемся списке для выбора.Как добавить/удалить опцию выбора из 1 выпадающего списка при выборе другой опции выпадающего списка

+0

Давать все связанные опционов аналогичного идентификатор, как «option_1_left» и 'option_1_right'. В событии onchange вашего выбора используйте .selectedIndex выпадающего списка, чтобы получить правильный вариант. (Или используйте обработчик onclick вместо опций и используйте event.target). После того, как у вас есть выбранный вариант, получите его id, замените «left» на «right». Затем у вас есть идентификатор опции, которую вы должны удалить из другого выпадающего списка. – Shilly

ответ

0

Я написал следующий JavaScript, чтобы решить вышеуказанную проблему, просто дать вашему Dropdowns общий класса, как «значение» здесь и использовать этот код:

  var j$importance = j$(".importance"); 

      j$importance.on("change", function() { 

       var select = this, 
        selected = j$("option:selected", this).text(); 

       var currentUnselectedValues = []; 

       j$('option', this).each(function() { 

        currentUnselectedValues.push(j$(this).text()); 
       }); 

       j$importance.each(function (_, el) { 

        for(i=0; i<currentUnselectedValues.length; i++){ 

         var exist = false; 

         j$('option', el).each(function(_, elm) { 

          if(currentUnselectedValues[i] === j$(elm).text()){ 

           exist = true; 
          } 
         }); 

         if(exist === false){ 

          j$(el).append('<option value="' + currentUnselectedValues[i] + '">' + currentUnselectedValues[i] + '</option>'); 
         } 
        } 

        if (el !== select) { 
         j$("option", el).each(function (_, el) { 
          var j$el = j$(el); 
          if (j$el.text() === selected && j$el.text() != '--None--') { 
           j$el.remove(); 
          } 
         }); 
        } 
       }); 

      }); 
Смежные вопросы