Jquery chosen動態設置值 select Ajax動態載入數據 設置chosen和獲取他們選中的值



  在做一個編輯對話框時,要對里面帶有select option的操作。主要是想動態載入option和對option的選中。可是由於項目中使用了jquery里的chosen()方法。怎么也無法實現效果。原碼例如以下:

 

 

Java代碼  
  1. <select id="viewOLanguage" data-rel="chosen">  
  2.     <option value="zh">中文簡體(中文簡體 Chinese)</option>  
  3.     <option value="en">English(英語 English)</option>  
  4.     <option value="fr">français(法語 French)</option>  
  5.     <option value="de">Deutsch(德語 German)</option>  
  6.     <option value="it">italiano(意大利語 Italian)</option>  
  7.     <option value="es">español(西班牙語 Spanish)</option>  
  8.     <option value="ru">русский(俄語 Russian)</option>  
  9.     <option value="ja">日本語(日語 Japanese)</option>  
  10.     <option value="ko">한국어(韓語 Korean)</option>  
  11. </select>  
  12.   
  13.   
  14. <select id="tLanguage" multiple="multiple" data-rel="chosen" style="width: 80%" >  
  15.     <option value="zh">中文簡體(中文簡體 Chinese)</option>  
  16.     <option value="en">English(英語 English)</option>  
  17.     <option value="fr">français(法語 French)</option>  
  18.     <option value="de">Deutsch(德語 German)</option>  
  19.     <option value="it">italiano(意大利語 Italian)</option>  
  20.     <option value="es">español(西班牙語 Spanish)</option>  
  21.     <option value="ru">русский(俄語 Russian)</option>  
  22.     <option value="ja">日本語(日語 Japanese)</option>  
  23.     <option value="ko">한국어(韓語 Korean)</option>  
  24. </select>  

 

在引用的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的方法還是沒有實驗成功。

 



免責聲明!

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



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