欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Bootstrap Multiselect 常用組件實現(xiàn)代碼

 更新時間:2017年07月09日 10:22:15   作者:Orson  
bootstrap-multiselect插件是一款基于bootstrap的下拉框美化插件,我們一般用來請求后臺返回具有l(wèi)abel和text對象的json數(shù)組即可渲染。接下來通過本文給大家分享Bootstrap Multiselect 常用組件實現(xiàn)代碼,感興趣的朋友一起看看吧

實際的項目網(wǎng)站中或多或少的或用到多選框,我選用的一款是 Bootstrap Multiselect。

    官方文檔:http://www.kuitao8.com/demo/20140224/1/bootstrap-multiselect-master/index.html

    如果你英文好一點,里面有詳細的介紹,多選框的設置,多選框獲取值/文本,選項分組,各種各樣豐富的表現(xiàn)方式和獲取。

    結(jié)合實際項目,加深技術(shù)理解,同時也方便自己后續(xù)項目中的使用。

    多選框和單選框相同,實際項目中前端不可能將里面的選項很直白的寫在展示層面,或多都是取自數(shù)據(jù)庫中的代碼表。

    這樣耦合低,便于維護;當需要展示的選項發(fā)生變化的時候,只需要變更一遍數(shù)據(jù)庫就好,不需要每個頁面修改,假如有100個頁面放置了單選框或者多選框,畫面太慘了。

    動態(tài)生成 多選框/單選框 方式我接觸的寫法有兩種,具體好壞,效率問題,仁者見仁智者見智。

    程序設計方式多種多樣,看客老爺肯定知道比我這樣寫更好的,不多說了,上代碼。

1.JavaBean 方式,在JSP 頁面,嵌入java 代碼實現(xiàn)             

 <div class="input-append">
          <span class="add-on">bootstrapMultiselect</span><select class="multiselect" multiple="multiple">
          <% for(int i=0;i<list.size();i++){
            Product product = list.get(i);%>
          <option value='<%=product.getId() %>'><%=product.getName() %></option>
          <% } %>
          </select>
        </div>

a.product 定義的基本的屬性和 setter 和 getter 是一個純粹的 pojo 對象;

b.具體的 product 對象的讀取,涉及與數(shù)據(jù)交互,封裝方法的數(shù)據(jù)結(jié)構(gòu)可以使用很多(包括數(shù)組、map、list),我這里使用的是 ArrayList<Product>;

c.如果想實現(xiàn)的更合理一點,可以定義數(shù)據(jù)庫訪問接口,里面定義各種各樣對操作 product 的方法(增,刪,改,查....),然后由另外一個類實現(xiàn)這些接口的方法(貌似扯遠了,等有時間在說吧);

2.后臺數(shù)據(jù)庫交互,前臺 JavaScript 動態(tài)添加選項

  依賴的具體的 WebMVC 框架為 SpringMvc.

  前臺 ajax 請求以及動態(tài)生成選項:

 $.ajax({
   url : "/" + window.location.pathname.split("/")[1] + '/service/product/init',
   type : 'POST',
   dataType : 'json',
   success : function(data) {
     if (data.success) {
       /**
        * Bootstrap Multiselect 動態(tài)賦值選項卡 1 
        */
       var products = data.products;
       $.each(products, function(index, product) {        
         $("#product").append('<option value="' + product.id + '">' + product.name + '</option>');
       });
       /**
        * Bootstrap Multiselect 動態(tài)賦值選項卡 2
        */
       var products = data.products;
       var newProducts = new Array();
       var obj = new Object();
       $.each(products, function(index, product) {
         obj = {
           label : product.id,
           value : product.name
         };
         newProducts.push(obj);
       });
        $(".multiselect").multiselect('dataprovider', newProducts);   
     }
   }
 });

 a. 第一種方法去賦值時需要注意的時,多選框要在前面先初始化;

 b. 然后在官方文檔的幫助下,找到了第二種方法,需要用到一個 Array,還有一個萬能的 object,將后臺返回回來的數(shù)據(jù)封裝給object ,然后將object 放入 Array中,最后賦值給多選框;

 c. 后臺交互需要一個簡單的 sql ,SpringMvc 會將返回回去的 map,轉(zhuǎn)換為 javascript Object 對象, list 轉(zhuǎn)換為 Array 對象;

 d.多選框提交到后臺值,你可以選擇提交選項文本,選項對應的值,提交選項 code 有優(yōu)勢,具體為code 一般為數(shù)字或者字母,而文本一般是漢字,會導致post 到后臺的內(nèi)容過大,需要進行轉(zhuǎn)碼,code 在代碼表中是唯一的,還有安全性較高;

 e.后臺具體的解析方法如下,我項目中具體是進行查詢,所以拼接為一個 sql 子句,解析后當然也可以用來更新數(shù)據(jù)庫;           

  if(!cxxxjo.getString("product").equals("null") && cxxxjo.getString("product").length() > 0){
          JSONArray productja = JSONArray.fromObject(cxxxjo.getString("product"));
            wherestr += " and t.product in(";
            for(int i = 0;i < productja.size();i++){
              if(i == productja.size()-1){
                wherestr += "'" + productja.get(i).toString()+"'";
              }else{
                wherestr += "'" + productja.get(i).toString()+"',";
              }
            }
            wherestr+=")";
        }

總結(jié)

以上所述是小編給大家介紹的Bootstrap Multiselect 常用組件實現(xiàn)代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 原生JavaScript實現(xiàn)購物車效果

    原生JavaScript實現(xiàn)購物車效果

    這篇文章主要為大家詳細介紹了原生JavaScript實現(xiàn)購物車效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • javascript定義類和類的實現(xiàn)實例詳解

    javascript定義類和類的實現(xiàn)實例詳解

    這篇文章主要介紹了javascript定義類和類的實現(xiàn),結(jié)合實例形式較為詳細的分析了JavaScript類的定義方式與相關(guān)使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-12-12
  • js實現(xiàn)的星星評分功能函數(shù)

    js實現(xiàn)的星星評分功能函數(shù)

    這篇文章主要介紹了js實現(xiàn)的星星評分功能函數(shù),涉及JavaScript響應鼠標事件實現(xiàn)針對頁面元素的遍歷與樣式屬性的修改技巧,非常簡單實用的代碼,需要的朋友可以參考下
    2015-12-12
  • 如何寫出優(yōu)雅的JS 代碼

    如何寫出優(yōu)雅的JS 代碼

    在開發(fā)中,變量名,函數(shù)名一般要做到清晰明了,盡量做到看名字就能讓人知道你的意圖,所以變量和函數(shù)命名是挺重要,今天來看看如果較優(yōu)雅的方式給變量和函數(shù)命名。
    2021-05-05
  • JavaScript實現(xiàn)圖像壓縮的方法

    JavaScript實現(xiàn)圖像壓縮的方法

    使用 JavaScript 和 canvas 壓縮圖像可以使用 canvas 的 drawImage() 方法將圖像繪制到 canvas 上,然后使用 toDataURL() 方法將圖像轉(zhuǎn)換為 Data URL 形式,這篇文章主要介紹了JavaScript 圖像壓縮的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • date.parse在IE和FF中的區(qū)別

    date.parse在IE和FF中的區(qū)別

    這個方法是很常用的,比如在驗證輸入日期是否存在時,可以使用它,如果是一個不存在的日期,則其返回值將是NaN,另外如果要比較兩個日期的先后,或是計算兩個日期相差的天數(shù) ,都可以用到。
    2010-07-07
  • 細數(shù)localStorage的用法及使用注意事項

    細數(shù)localStorage的用法及使用注意事項

    這篇文章主要介紹了細數(shù)localStorage的用法及使用注意事項,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • JS類中定義原型方法的兩種實現(xiàn)的區(qū)別

    JS類中定義原型方法的兩種實現(xiàn)的區(qū)別

    JS類中定義原型方法的兩種實現(xiàn)的區(qū)別...
    2007-03-03
  • ASP中進行HTML數(shù)據(jù)及JS數(shù)據(jù)編碼函數(shù)

    ASP中進行HTML數(shù)據(jù)及JS數(shù)據(jù)編碼函數(shù)

    在有些時候我們無法控制亂碼的出現(xiàn), 比如發(fā)送郵件的時候有些郵件顯示亂碼, 比如Ajax返回數(shù)據(jù)總是亂碼. 怎么辦?
    2009-11-11
  • js 用CreateElement動態(tài)創(chuàng)建標簽示例

    js 用CreateElement動態(tài)創(chuàng)建標簽示例

    用CreateElement動態(tài)創(chuàng)建標簽,主要是html中常用的一些標簽,在本文有詳細的示例,喜歡的朋友可以參考下
    2013-11-11

最新評論