Jquery chosen动态设置值 select Ajax动态加载数据 设置

页面导航:首页 > 网络编程 > JavaScript > Jquery chosen动态设置值 select Ajax动态加载数据 设置

Jquery chosen动态设置值 select Ajax动态加载数据 设置

来源: 作者: 时间:2016-02-02 09:58 【

在做一个编辑对话框时,要对里面带有select option的操作。主要是想动态加载option和对option的选中。但是由于项目中使用了jquery里的chosen()方法,怎么也无法实现效果。原码如下: Java代


在做一个编辑对话框时,要对里面带有select option的操作。主要是想动态加载option和对option的选中。但是由于项目中使用了jquery里的chosen()方法,怎么也无法实现效果。原码如下:

 

 

代码 收藏代码
  1.  
  2.  
  3.  

    在引用的js文件中使用了这样的代码:

     

    Js代码
    1. //chosen - improves select
    2. $('[data-rel="chosen"],[rel="chosen"]').chosen();

       

      然后在自己的私有js文件中怎么对select进行任何操作都没有效果:

       

      Js代码
      1. // $("#viewTLanguage option: selected").attr("value", language);
      2. $("#viewTLanguage option[value='"+language+"']").attr("selected","selected");
      3.  
      4. jquery.append(option);

         

        于是在网上寻找一些解决办法,偶然看了几篇文章,顿时好像明白一点什么。

        其实完全可以在使用jquery的chosen()方法前进行操作,然后再进行chosen的方法。

         

        Js代码
        1. $("#viewOLanguage option[value='"+oLanguage+"']").attr("selected","selected");
        2. $("#viewOLanguage").chosen();

           

          并且在select中去掉“data-rel="chosen"”,这样一来,就能实现select相应项的选中了,同样,append方法也会效果。

           

          在网上还有一种说法是使用$("#jquery").chonse("destroy"),我也试了下,不过没有成功。

           

          另外还可以试试这个:

           

           

          Js代码
          1. jQuery Chosen.destroy().init()

             

            重新实例化的方法。

             

            ps:这篇文章之前有不完善的地方,所说的解决办法只解决了初始问题,却没有考虑到后续加载的事情。所以 ,还需要用这段代码:

             

            Js代码
            1. $("#dialogOLanguage").trigger("liszt:updated"); //项目中可以使用

              或者是新版本的中的

               

              Js代码
              1. $("#dialogOLanguage").trigger("chosen:updated"); //可能是因为只能在新版本中使用的原因,项目中没效果

                 

                这样可以解决同一select不断动态加载的问题。

                 

                另,destroy的方法还是没有实验成功。

                 

Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<