2016-06-01 15 views
0

Also musste ich das Bootstrap-Duallist-Plugin ändern, so dass der Filter die relevantesten Optionen zuerst aus eingegebenen Stichwörtern anzeigen würde. Die gefilterten Optionen werden dann (basiert usw. auf ihre Relevanz wird die Farbe des Textes) innerhalb des Feldes markiertBootstrap Dual-Liste - Optionen manuell über Javascript auswählen?

bootstrap dual list

Es funktioniert gut, bis ich Optionen auswählen möchten und legen Sie sie in das ausgewählte Feld . Ich habe versucht, jquery zu verwenden, um das 'ausgewählte' Attribut hinzuzufügen, nachdem die Optionen angeklickt wurden.

var nonselectedBox = $("#bootstrap-duallistbox-nonselected-list_bundle") 
nonselectedBox.find("option").removeAttr("selected"); 
$(this).find("li.selected").each(function() { 
    nonselectedBox.find("option[value='" + $(this).text() + "']") 
     .attr("selected", "selected"); 
}); 

Dies funktioniert und ich kann alle Optionen durch einen jQuery Dom Grab geändert sehen; Die Optionen werden jedoch nicht zur ausgewählten Liste hinzugefügt, nachdem die Bewegungspfeile gedrückt wurden.

Ich habe die Dokumentation durchgelesen, es gibt jedoch keine Funktionen zum manuellen Auswählen von Optionen. Wie kann ich das tun?

Antwort

0

So gab es mehrere Probleme mit diesem Code

  1. Ausgewählte Elemente müssen durch das Original mehrere Auswahleingang hinzugefügt oder entfernt werden.
    Also muss var nonselectedBox = $("#bootstrap-duallistbox-nonselected-list_bundle")$("#list_bundle") sein.
  2. Die $ .removeAttr-Funktion nonselectedBox.find("option").removeAttr("selected"); ruiniert diese Plugins-Interaktionen vollständig. Sobald dieser Befehl ausgeführt wurde, konnte ich feststellen, dass das Plugin überhaupt nicht aktualisiert werden konnte.
    Der richtige Weg, dies zu tun ist, um das Attribut zu löschen, anstatt sie zu entfernen: nonselectedBox.find("option").attr("selected",false);

Das heißt ich habe mit diesem Plugin ganz fallen zu lassen entschieden und meine eigene schreiben. Der Duallist ist nur für einen einzigen Zweck gedacht und daher ziemlich schwer anzupassen.
Auch die Menge an Ergebnissen, die zum Filtern benötigt wird, scheint viel größer zu sein als das, was es verarbeiten kann. Die Effizienz des Zerstörens und Neugenerierens der Mehrfachauswahl von "Anzeigen" ist absolut schrecklich und blockiert Internet Explorer für 5 Sekunden jedes Mal, wenn Optionen gefiltert, ausgewählt und abgewählt werden.