2016-06-01 63 views
0

所以我需要更改bootstrap duallist插件,以便過濾器首先從鍵入的關鍵字中顯示最相關的選項。然後將過濾的選項方框內突出(這將文本的顏色是基於其相關性等)bootstrap雙列表 - 通過JavaScript手動選擇選項?

bootstrap dual list

,直到我想選擇的選項,並放置到選定的盒子,它工作正常了。一旦選項被點擊,我嘗試使用jquery添加'selected'屬性。

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

這個工程,我可以看到所有的選項通過jQuery的DOM更改;但是一旦移動箭頭被按下,它就不會將選項添加到選定列表中。

我已經通過了文檔,但是沒有任何手動選擇選項的功能。那我該怎麼做?

回答

0

因此就出現了多個問題,此代碼

  1. 所選項目需要通過原來多選擇輸入要添加或刪除。
    所以var nonselectedBox = $("#bootstrap-duallistbox-nonselected-list_bundle")需要$("#list_bundle")
  2. $ .removeAttr函數nonselectedBox.find("option").removeAttr("selected");完全破壞了這個插件交互。一旦執行此命令,我發現插件無法更新。
    正確的方式做到這一點是明確的屬性,而不是將其取出:nonselectedBox.find("option").attr("selected",false);

不過我已經決定完全使用這個插件刪除和寫我自己。 duallist僅用於單一目的,因此很難定製。
此外,過濾所需的結果數量似乎遠遠大於它可以處理的數量。破壞並重新創建「顯示」多選的效率非常糟糕,每次選項被過濾,選中和取消選擇時,Internet Explorer將凍結5秒。