搜尋
首頁web前端html教學JS组件系列--Bootstrap Select2组件使用小结_html/css_WEB-ITnose

前言:在介绍select组件的时候,博主之前分享过一篇 JS组件系列——两种bootstrap multiselect组件大比拼 ,这两个组件的功能确实很强大,只可惜没有图文结合的效果(也就是将图片放入到select里面随着文字一起显示)。前两天做一个菜单图标选择的功能,就要用到这个图文选择的功能。于是乎又是找啊找。终于不负所望,找到了我们伟大的select2组件。今天分享下这个组件的一些用法和特性。

一、组件说明以及API说明

Select2使用示例地址: https://select2.github.io/examples.html

Select2参数文档说明: https://select2.github.io/options.html

Select2源码: https://github.com/select2/select2

二、组件特性效果展示

一些通用的单选、多选、分组等功能这里就不多做介绍了,multiselect这方面是强项。重点介绍下select2的一些特性效果:

1、多选效果

可以设置最多只能选几个

2、图文结合的效果

3、远程搜索功能(即在用户输入搜索内容时动态去后台取数据)

输入内容前

输入空格搜索出全部

滚动条滑动到底部自动加载剩余项

输入文本动态去后台过滤

更高级的用法如:

其实使用起来也不难,就是一个拼html的过程。

三、代码示例

1、多选效果

select2的多选很简单,设置一个属性就好了。

   <script src="~/Scripts/jquery-1.10.2.js"></script>    <script src="~/Content/bootstrap/js/bootstrap.js"></script>    <link href="~/Content/bootstrap/css/bootstrap.css" rel="stylesheet" />    <script src="~/Content/select2-master/dist/js/select2.js"></script>    <link href="~/Content/select2-master/dist/css/select2.css" rel="stylesheet" />
  <select id="sel_menu2" multiple="multiple" class="form-control">         <optgroup label="系统设置">              <option value="1">用户管理</option>              <option value="2">角色管理</option>              <option value="3">部门管理</option>              <option value="4">菜单管理</option>         </optgroup>         <optgroup label="订单管理">              <option value="5">订单查询</option>              <option value="6">订单导入</option>              <option value="7">订单删除</option>              <option value="8">订单撤销</option>         </optgroup>         <optgroup label="基础数据">              <option value="9">基础数据维护</option>          </optgroup>     </select>
    //多选    $("#sel_menu2").select2({        tags: true,        maximumSelectionLength: 3  //最多能够选择的个数    });

2、图文结合的效果

<select id="sel_menu" class="js-example-templating js-states form-control">             <optgroup label="系统设置">                 <option value="1">用户管理</option>                 <option value="2">角色管理</option>                 <option value="3">部门管理</option>                 <option value="4">菜单管理</option>             </optgroup>             <optgroup label="订单管理">                 <option value="5">订单查询</option>                 <option value="6">订单导入</option>                 <option value="7">订单删除</option>                 <option value="8">订单撤销</option>             </optgroup>             <optgroup label="基础数据">                 <option value="9">基础数据维护</option>             </optgroup>         </select>
$(function () {    //带图片    $("#sel_menu").select2({        templateResult: formatState,        templateSelection: formatState    });});function formatState(state) {    if (!state.id) { return state.text; }    var $state = $(      '<span><img  src="/content/images/' + state.element.value.toLowerCase() + '.ico" class="img-flag" / alt="JS组件系列--Bootstrap Select2组件使用小结_html/css_WEB-ITnose" > ' + state.text + '</span>'    );    return $state;};

3、远程搜索功能(即在用户输入搜索内容时动态去后台取数据)

 <select id="sel_menu3" class="js-data-example-ajax form-control">      <option value="3620194" selected="selected">请选择</option> </select>
$(function () {    //远程筛选    $("#sel_menu3").select2({        ajax: {            url: "/Home/GetProvinces",            dataType: 'json',            delay: 250,            data: function (params) {                return {                    q: params.term, // search term                    page: params.page                };            },            processResults: function (data, params) {                params.page = params.page || 1;                return {                    results: data.items,                    pagination: {                        more: (params.page * 10) < data.total_count                    }                };            },            cache: true        },        escapeMarkup: function (markup) { return markup; }, // let our custom formatter work        minimumInputLength: 1,        templateResult: formatRepoProvince, // omitted for brevity, see the source of this page        templateSelection: formatRepoProvince // omitted for brevity, see the source of this page    });});
function formatRepoProvince(repo) {    if (repo.loading) return repo.text;    var markup = "<div>"+repo.name+"</div>";    return markup;}

这里有要注意的一个地方就是processResults属性对应的方法有一个more属性用于是否分页显示的,这里的值要和你需要一次显示的值的条数匹配。

后台对应的方法如下:

public List<string> lstProvince = new List<string>() {"北京市","天津市","重庆市","上海市","河北省","山西省","辽宁省","吉林省","黑龙江省","江苏省","浙江省","安徽省","福建省","江西省","山东省","河南省","湖北省","湖南省","广东省","海南省","四川省","贵州省","云南省","陕西省","甘肃省","青海省","台湾省","内蒙古自治区","广西壮族自治区","西藏自治区","宁夏回族自治区","新疆维吾尔自治区","香港特别行政区","澳门特别行政区" };        public JsonResult GetProvinces(string q, string page)         {            var lstRes = new List<Province>();            for (var i = 0; i < 30; i++)            {                var oProvince = new Province();                oProvince.id = i;                oProvince.name = lstProvince[i];                lstRes.Add(oProvince);            }            if (!string.IsNullOrEmpty(q.Trim()))            {                lstRes = lstRes.Where(x => x.name.Contains(q)).ToList();            }            var lstCurPageRes = string.IsNullOrEmpty(page) ? lstRes.Take(10) : lstRes.Skip(Convert.ToInt32(page) * 10 - 10).Take(10);            return Json(new { items = lstCurPageRes, total_count = lstRes.Count }, JsonRequestBehavior.AllowGet);        }
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
HTML標籤和HTML屬性有什麼區別?HTML標籤和HTML屬性有什麼區別?May 14, 2025 am 12:01 AM

HTMLtagsdefinethestructureofawebpage,whileattributesaddfunctionalityanddetails.1)Tagslike,,andoutlinethecontent'splacement.2)Attributessuchassrc,class,andstyleenhancetagsbyspecifyingimagesources,styling,andmore,improvingfunctionalityandappearance.

HTML的未來:進化和趨勢HTML的未來:進化和趨勢May 13, 2025 am 12:01 AM

HTML的未來將朝著更加語義化、功能化和模塊化的方向發展。 1)語義化將使標籤更明確地描述內容,提升SEO和無障礙訪問。 2)功能化將引入新元素和屬性,滿足用戶需求。 3)模塊化將支持組件化開發,提高代碼復用性。

為什麼HTML屬性對Web開發很重要?為什麼HTML屬性對Web開發很重要?May 12, 2025 am 12:01 AM

htmlattributesarecrucialinwebdevelopment forcontrollingBehavior,外觀和功能

Alt屬性的目的是什麼?為什麼重要?Alt屬性的目的是什麼?為什麼重要?May 11, 2025 am 12:01 AM

alt屬性是HTML中標籤的重要部分,用於提供圖片的替代文本。 1.當圖片無法加載時,alt屬性中的文本會顯示,提升用戶體驗。 2.屏幕閱讀器使用alt屬性幫助視障用戶理解圖片內容。 3.搜索引擎索引alt屬性中的文本,提高網頁的SEO排名。

HTML,CSS和JavaScript:示例和實際應用HTML,CSS和JavaScript:示例和實際應用May 09, 2025 am 12:01 AM

HTML、CSS和JavaScript在網頁開發中的作用分別是:1.HTML用於構建網頁結構;2.CSS用於美化網頁外觀;3.JavaScript用於實現動態交互。通過標籤、樣式和腳本,這三者共同構築了現代網頁的核心功能。

如何在標籤上設置lang屬性?為什麼這很重要?如何在標籤上設置lang屬性?為什麼這很重要?May 08, 2025 am 12:03 AM

設置標籤的lang屬性是優化網頁可訪問性和SEO的關鍵步驟。 1)在標籤中設置lang屬性,如。 2)在多語言內容中,為不同語言部分設置lang屬性,如。 3)使用符合ISO639-1標準的語言代碼,如"en"、"fr"、"zh"等。正確設置lang屬性可以提高網頁的可訪問性和搜索引擎排名。

HTML屬性的目的是什麼?HTML屬性的目的是什麼?May 07, 2025 am 12:01 AM

htmlattributeseresene forenhancingwebelements'functionalityandAppearance.TheyAdDinformationTodeFineBehavior,外觀和互動,使網站互動,響應式,visalalyAppealing.AttributesLikutesLikeSlikEslikesrc,href,href,href,類,類型,類型,和dissabledtransfransformformformformformformformformformformformformformformforment

您如何在HTML中創建列表?您如何在HTML中創建列表?May 06, 2025 am 12:01 AM

toCreateAlistInHtml,useforforunordedlistsandfororderedlists:1)forunorderedlists,wrapitemsinanduseforeachItem,RenderingeringAsabulletedList.2)fororderedlists,useandfornumberedlists,useandfornumberedlists,casundfornumberedlists,casundfornthetthetthetthetthetthetthetttributefordforderfordforderforderentnumberingsnumberingsnumberingStys。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。