zoukankan      html  css  js  c++  java
  • 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");
    
    // } });
  • 相关阅读:
    委托的例子,from C# advanced program
    C#线程通信与异步委托
    进程间通信
    线程间通信
    投影转换(AE)
    FTP多任务下载实现类
    堆内存和栈内存详解(转)
    How threads differ from processes
    实现远程FTP特定时间轨道号MODIS数据的搜索
    委托的例子
  • 原文地址:https://www.cnblogs.com/YangJavaer/p/6430016.html
Copyright © 2011-2022 走看看