2016-05-20 11 views
-1

Angenommen, ich habe 2 Dropdowns. Meine Anforderung ist, dass bei Auswahl einer Option in der ersten Dropdown-Liste diese Option aus einem anderen Dropdown-Menü entfernt werden sollte und bei Nicht-Auswahl dieser Option aus dem ersten Dropdown-Feld diese Option in einem anderen Dropdown-Menü für die Auswahl verfügbar sein sollte.Wie Hinzufügen/Entfernen wählen Sie Option aus 1 Drop-Down auf Auswahl anderer Drop-Down-Option

+0

Geben Sie alle verknüpften Optionen eine ähnliche id, wie ‚option_1_left‘ und "option_1_right". Verwenden Sie im Onchange-Ereignis Ihrer Auswahl den .selectedIndex der Dropdown-Liste, um die richtige Option zu erhalten. (Oder verwenden Sie stattdessen einen onclick-Handler für Optionen und verwenden Sie event.target). Sobald Sie die gewählte Option haben, erhalten Sie ihre ID, ersetzen Sie "links" durch "rechts". Dann haben Sie die ID der Option, die Sie aus dem anderen Dropdown entfernen sollten. – Shilly

Antwort

0

ich habe folgende JavaScript geschrieben obiges Problem zu lösen, nur Ihren Dropdown-Listen eine gemeinsame Klasse geben wie „Bedeutung“ hier und diesen Code verwenden:

  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(); 
          } 
         }); 
        } 
       }); 

      });