jquery chosen 插件 動態設置+更新選項值


我要在表單里使用一個select下拉菜單(是不是multiple無所謂),所以選擇了jquery chosen這個插件。現在有一個需求,需要根據表單的另一個域來動態加載該select元素的選項。

1

於是很容易的開始下面幾步(當然可以在F12調試工具下單步試驗,效果佳):

// $.ajax({ ... success: function() { ... // 清空select選項集 $("#select_elem").empty(); // 更新select選項(省略...) 

光這樣還不夠。.empty()只能清空原生select元素的選項,不能更新chosen插件生成的選項框。
此時的效果是,點擊下拉框中的備選項,備選項不會出現在已選框里,且備選項中的該項消失,控制台報錯:

chosen.jquery.js:410 Uncaught TypeError: Cannot set property 'selected' of undefined

2

於是查到可以在更新select元素后再這樣一下:

$("#select_elem").chosen("destroy")

還有的說

$("#select_elem").chosen("destroy").init()

俱無卵用。

3

繼續查,查到使用$().trigger()方法

$("#select_elem").trigger("liszt:updated") /* 試驗可用 */

一說新版:

$("#select_elem").trigger("chosen:updated")

試驗中,前者可用。

4

綜上,

 
// $.ajax({ ... success: function() { ... $("#select_elem").empty(); /* 添加新select選項(省略) */ $("#select_elem").trigger("liszt:updated"); // } });


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM