bootstrap select2 tags用法總結

(原創) bootstrap select2 用法總結

前言javascript

最近用到bootstrap 的 select2,官方文檔中的例子也不少在此寫一些實際項目中用法總結,有須要的朋友能夠借鑑一下。php

效果圖css

仍是挺帥的!

  • 不管是固定方式獲取數據仍是ajax獲取都須要引入bootstrap.js/css 和 select2.js/css
    及:html

{{ stylesheet_link('css/bootstrap.css') }}
{{ stylesheet_link('css/select2.min.css') }} 
{{ stylesheet_link('css/font-awesome.min.css') }} 
{{ stylesheet_link('css/prettify.css') }} 


{{ javascript_include('js/lib/jquery.js') }}
{{ javascript_include('js/lib/select2.full.js') }}
{{ javascript_include('js/lib/bootstrap.js') }}
<div class="container"> 
 <section id="tags" class="row">
    <div class="col-md-4">
       <p>
            <select class="js-example-tags form-control" multiple="multiple">
              <option selected="selected">orange</option>
              <option>white</option>
              <option selected="selected">purple</option>
            </select>
        </p>
    </div>
</section>
</div>
</div>
  • 固定方式獲取java

$(".js-example-tags").select2({
    tags: true, //是否能夠自定義tag
    createSearchChoice:function(term, data) { 
        alert(1);
        if ($(data).filter(function() { 
            return this.text.localeCompare(term)===0; 
        }).length===0) 
        {return {id:term, text:term};} 
    },
    multiple: true,
    data: [{id: 0, text: 'story'},{id: 1, text: 'bug'},{id: 2, text: 'task'}]
});
  • ajax方式獲取jquery

$(".js-example-tags").select2({
  // enable tagging
  tags: true,

  // loading remote data
  // see https://select2.github.io/options.html#ajax
  ajax: {
    url: "Ask2/tags",
    processResults: function (data, page) {
      console.log(data);
      var parsed = data;
      var arr = [];
      for(var x in parsed){
          arr.push(parsed[x]); //這個應該是個json對象
      }
      console.log(arr);
      return {
        results: arr
      };
    }
  }
});

說明git

在ajax中的數據返回格式應該是這個樣子滴(results):github

[{id: 0, text: 'story'},{id: 1, text: 'bug'},{id: 2, text: 'task'}]

對應的php代碼例子ajax

...
        $p1 = array(id => "1",text=>"java");
        $p2 = array(id => "2",text=>"jvm");
        $test = array(1=>$p1,2=>$p2);        
        $params['responseData'] = $test;
        $this->view->disable();
        return parent::ajaxResponse($params);
相關文章
相關標籤/搜索