使用select2插件實現select選擇框的一些經常使用功能

在這以前對於select下拉框我使用bootstrap-select插件來處理select下拉選擇框:https://www.wj0511.com/site/detail.html?id=224php

可是如今咱們公司使用的是select2插件來處理select選擇框,這裏我就來簡單的介紹下select2插件的簡單使用css

一:下載select2html

select2的github地址:https://github.com/select2/select2jquery

select2的官方文檔地址:https://select2.org/git

訪問github進行下載select2插件github

二:簡單使用select2ajax

1:引入jquery和select2json

<!--引入jquery和select2相關js-->  
<script src="./js/jquery.min.js"></script>  
<script src="./select2/js/select2.min.js"></script>  
<script src="./select2/js/i18n/zh-CN.js"></script>  
<!--引入select2的css-->  
<link href="./select2/css/select2.min.css" rel="stylesheet">

2:htmlbootstrap

(1)單選數組

<select class="select-status" name="select-status">  
    <option value="0">待審覈</option>  
    <option value="1">審覈經過</option>  
    <option value="2">審覈駁回</option>  
</select>

(2)多選

<select class="select-status" name="select-status[]" multiple="multiple">  
    <option value="0">數學</option>  
    <option value="1">語文</option>  
    <option value="2">英語</option>  
    <option value="3">體育</option>  
    <option value="4">音樂</option>  
    <option value="5">物理</option>  
</select>

3:js

<script>  
    $(document).ready(function() {  
        $('.select-status').select2({});  
    });  
</script>

如上的過程就是簡單的使用select2插件,select2方法有不少經常使用的參數,下面介紹幾種查用的參數

1:language:用於select的提示語言,默認爲英文

$('.select-status').select2({  
    language: 'zh-CN',//用於指定select2提示語爲中文  
});

2:placeholder:用戶指定select框的提示符,select框沒有選擇時的提示信息

$('.select-status').select2({  
    placeholder: '請選擇',  
});

3:width:設置select框的寬度

$('.select-status').select2({  
    width: '400px',  
});

4:maximumSelectionLength:最大能夠選擇的個數,用戶select的多選配置,默認爲0,表示能夠選擇任意個數

$('.select-status').select2({  
    maximumSelectionLength: 2,  
});

5:maximumInputLength:select搜索時最多能夠提過的搜索字符數,默認爲0,表示能夠提供任意數量的字符用於搜索

$('.select-status').select2({  
    maximumInputLength: 2,  
});

6:minimumInputLength:select搜索時至少提供指定字符數用於檢索,及若是小於指定字符數不會進行檢索,默認爲0,表示只要提供檢索字符就開始進行搜索

$('.select-status').select2({  
    minimumInputLength: 2,  
});

7:multiple:表示是否將select設置爲多選,默認爲false,表示不進行設置,及若是你想要將一個單選的下拉框這是爲多選的話,你能夠將multiple設置爲true

8:closeOnSelect:表示在select框進行選擇時,是否關閉選擇下拉,默認爲true,表示選擇後關閉下拉

$('.select-status').select2({  
    closeOnSelect: false,  
});

9:debug:表示是否開啓調試模式,默認爲false,不開啓調試模式

$('.select-status').select2({  
    debug: true,  
});

10:disabled:表示下拉選擇是否禁止選擇,默認爲fasle,表示能夠選擇下拉項,爲true時選擇項被禁用不可選擇

$('.select-status').select2({  
    disabled: true,  
});

11:data:是一個數組對象,當html中的select中沒有option時,設置data參數能夠從data參數中設置下拉選項

var data = [  
    {  
        id: 0,  
        text: '選項一'  
    },  
    {  
        id: 1,  
        text: '選項二'  
    },  
    {  
        id: 2,  
        text: '選項三',  
        disabled:true  
    },  
    {  
        text: '父級選項',  
        children:[  
            {  
                id: 3,  
                text: '子級選項一'  
            },  
            {  
                id: 4,  
                text: '子級選項二'  
            },  
        ]  
    },  
];  
$('.select-status').select2({  
    data: data,  
});

id:表示option的value值

text:表示option的顯示值

disabled:爲true時表示禁止選擇

children:表示選擇框有子父級關係

生成的select現象以下:

(1)單選框現象:

image.png

多選框現象:

image.png

12:ajax:表示使用ajax來實現渲染下拉框的選項

ajax的經常使用參數有:

url:獲取選項下拉選項數據的接口地址

dataType:數據類型

delay:請求數據等待時長

data:向接口傳遞的參數

processResults:獲取接口數據,將接口數據渲染到下拉選項中

cache:是否開啓緩存

簡單實例以下:

(1):無分頁的下拉選擇

這裏以接口返回的數據以下爲例:

{  
    "result": [  
        {  
            "value": 1,//對應id  
            "name": "選項1"//對應text  
        },  
        {  
            "value": 2,  
            "name": "選項2"  
        },  
        {  
            "value": 3,  
            "name": "選項3"  
        }  
    ],  
    "total\_count": 3  
}

這時候使用ajax來渲染下拉選擇以下:

$('.select-status').select2({  
    ajax: {  
        url: '/index.php?r=select/search',//接口地址  
        dataType: 'json',  
        delay: 250,  
        data: function (params) {  
            return {  
                keyword: params.term, // 搜索條件,表示你在下拉搜索時輸入的參數  
            }  
        },  
        processResults: function (json, params) {  
            data = json.result  
            //將接口返回的參數進行賦值  
            data = $.map(data, function (obj) {  
                obj.id = obj.value;  
                obj.text = obj.name;  
                return obj;  
            });  
            return {  
                results: data,  
            };  
        },  
        cache: true  
    },  
});

(1):分頁的下拉選擇

$('.select-status').select2({  
    width:'400px',  
    ajax: {  
        url: '/index.php?r=select/search',//接口地址  
        dataType: 'json',  
        delay: 250,  
        data: function (params) {  
            return {  
                keyword: params.term, // 搜索條件,表示你在下拉搜索時輸入的參數  
                page: params.page  //當前的頁碼  
            }  
        },  
        processResults: function (json, params) {  
            params.page = params.page || 1;  
            data = json.result  
            //將接口返回的參數進行賦值  
            data = $.map(data, function (obj) {  
                obj.id = obj.value;  
                obj.text = obj.name;  
                return obj;  
            });  
            return {  
                results: data,  
                pagination: {  
                    more: (params.page \* 10) < json.total\_count  
                }  
            };  
        },  
        cache: true  
    },  
});

如上就是select2插件的簡單使用

相關文章
相關標籤/搜索