澳门威利斯人_威利斯人娱乐「手机版」

来自 澳门威利斯人 2019-07-21 05:18 的文章
当前位置: 澳门威利斯人 > 澳门威利斯人 > 正文

select使用方法详解,select下拉搜索插件使用方法

写在前方:

写在日前:

bootstrap-select是boot的下拉搜求插件,使用的时候偶尔大家必要动态从后台 也许 直接加载动态数据。
上边是依据一级下拉菜单,动态加载二级联合浮动情势。(不是ajax后台获取)

在本次的档期的顺序中,未有再采用liger-ui做为前端框架了,改为了Bootstrap,此次能够接触下新的工夫,在学习的经过中开采,Bootstrap的一些零部件基本都是应用class的款式,就是给一个它定义好的体裁,就能给您表现出三个雅观的零件出来,那几个比liger-ui的分界面做的本身,但是明白了Boostrap的骨干语法后,开采在合法的文书档案中,并未一些可以动态加载组件的demo,因为事先用的liger-ui,大多数零部件都只供给写一行代码,就能够很好的,何况很有利的第一手与后台实行交互,并动态加载数据。可是bootstrap的文书档案中并从未如此的例证。毕竟它便是做静态的,只供给给三个体裁,这作者动态加载数据如何是好?全体协调包裹吗?后边查阅资料开掘,有许多常用的机件插件是根据bootstrap来进展包装的,那就须求大家只要要利用什么组件,可以独立的再去下载它的插件。这一年,就足以做到很方便的像后台发送数据实行动态加载了。这里就记录下,一些常用的bootstrap的零件插件吧,首先是下拉框。

  在本次的类别中,未有再利用liger-ui做为前端框架了,改为了Bootstrap,此次能够接触下新的能力,在上学的进程中发觉,Bootstrap的一部分组件基本都以运用class的花样,正是给多个它定义好的体制,就能够给您表现出多少个狼狈的零部件出来,那一个比liger-ui的分界面做的亲善,但是掌握了Boostrap的着力语法后,发掘在官方的文书档案中,并从未一些足以动态加载组件的demo,因为事先用的liger-ui,大多数组件都只须求写一行代码,就能够很好的,并且很便利的直接与后台举办相互,并动态加载数据。不过bootstrap的文书档案中并不曾这么的例子。毕竟它正是做静态的,只须要给八个体制,那自身动态加载数据如何做?全体和睦包裹吗?后边查阅资料开掘,有比比较多常用的组件插件是基于bootstrap来拓展包装的,那就供给我们只要要运用什么组件,能够单独的再去下载它的插件。那一年,就足以成功很有益于的像后台发送数据进行动态加载了。这里就记录下,一些常用的bootstrap的零部件插件吧,首先是下拉框

第一引进js与css文件(三个css七个js)

基于Bootstrap的下拉框也可以有少数个,这里笔者选取了bootstrap-select.js.上边就回顾的笔录下它的用法吧,主固然动态的加载数据。

  基于Bootstrap的下拉框也许有点个,这里作者选择了bootstrap-select.js.下边就归纳的笔录下它的用法吧,首若是动态的加载数据。

<link rel="stylesheet" href="css/bootstrap-select.css" rel="external nofollow" >

率先依然上代码,终究代码最直观。

  首先依然上代码,究竟代码最直观。

js省略

前台jsp页面:

  前台jsp页面:

一、下拉搜索(html)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
 String scheme = request.getScheme();
 String serverName = request.getServerName();
 String contextPath = request.getContextPath();
 int port = request.getServerPort();

 //网站的访问跟路径
 String baseURL = scheme   "://"   serverName   ":"   port
     contextPath;
 request.setAttribute("baseURL", baseURL);
 System.out.println("baseURL:"   baseURL);
%>

<html>
 <head>
 <meta name="viewport" content="width=device-width" />
 <title>bootstrap-select测试</title>
 <%--导入bootstrap与select样式--%>
 <link rel="stylesheet" type="text/css" href="${baseURL}/Bootstrap/bootstrap/css/bootstrap.min.css" rel="external nofollow" rel="external nofollow" />
 <link href="${baseURL}/Bootstrap/bootstrap-select/css/bootstrap-select.css" rel="external nofollow" rel="external nofollow" rel="stylesheet" />
 <%--先导入jqury插件--%>
 <script src="${baseURL}/Bootstrap/bootstrap/assets/js/jquery-1.10.2.min.js"></script>
 <%--导入bootstrap插件--%>
 <script src="${baseURL}/Bootstrap/bootstrap/assets/js/bootstrap.min.js"></script>
 <%--下拉框插件--%>
 <script src="${baseURL}/Bootstrap/bootstrap-select/js/bootstrap-select.js"></script>
 </head>
 <body>

 <label style="font-weight:normal;background-color: #fac090;width: 80px;text-align: center" >Role</label>
 <%--给一个class=“selectpicker” 改变下拉框的宽度用data-width --%>
 <select id="sel_role" name="role" class="selectpicker" title="请选择" data-width="150px" style="">
 </select>
 </body>
<script>
 $(function(){
  //初始化下拉框
  //动态加载
  $.ajax({
   type: 'get',
   url: '${baseURL}/listAllRole',
   dataType: "json",
   success: function (data) {
    //拼接下拉框
    for(var i=0;i<data.length;i  ){
     $("#sel_role").append("<option value='" data[i].roleId "'>" data[i].roleName "</option>");
    }
    //这一步不要忘记 不然下拉框没有数据
    $("#sel_role").selectpicker("refresh");
   }
  });

 });
</script>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
  String scheme = request.getScheme();
  String serverName = request.getServerName();
  String contextPath = request.getContextPath();
  int port = request.getServerPort();

  //网站的访问跟路径
  String baseURL = scheme   "://"   serverName   ":"   port
            contextPath;
  request.setAttribute("baseURL", baseURL);
  System.out.println("baseURL:"   baseURL);
%>

<html>
  <head>
    <meta name="viewport" content="width=device-width" />
    <title>bootstrap-select测试</title>
    <%--导入bootstrap与select样式--%>
    <link rel="stylesheet" type="text/css" href="${baseURL}/Bootstrap/bootstrap/css/bootstrap.min.css" />
    <link href="${baseURL}/Bootstrap/bootstrap-select/css/bootstrap-select.css" rel="stylesheet" />
    <%--先导入jqury插件--%>
    <script src="${baseURL}/Bootstrap/bootstrap/assets/js/jquery-1.10.2.min.js"></script>
    <%--导入bootstrap插件--%>
    <script src="${baseURL}/Bootstrap/bootstrap/assets/js/bootstrap.min.js"></script>
    <%--下拉框插件--%>
    <script src="${baseURL}/Bootstrap/bootstrap-select/js/bootstrap-select.js"></script>
  </head>
  <body>

  <label style="font-weight:normal;background-color: #fac090;width: 80px;text-align: center" >Role</label>
  <%--给一个class=“selectpicker”  改变下拉框的宽度用data-width --%>
  <select id="sel_role" name="role" class="selectpicker" title="请选择" data-width="150px" style="">
  </select>
  </body>
<script>
    $(function(){
        //初始化下拉框
        //动态加载
        $.ajax({
            type: 'get',
            url: '${baseURL}/listAllRole',
            dataType: "json",
            success: function (data) {
                //拼接下拉框
                for(var i=0;i<data.length;i  ){
                    $("#sel_role").append("<option value='" data[i].roleId "'>" data[i].roleName "</option>");
                }
                //这一步不要忘记 不然下拉框没有数据
                $("#sel_role").selectpicker("refresh");
            }
        });

    });
</script>
</html>
<select class="selectpicker" data-live-search="true" id="d1">
  <option value="-1">请选择</option>
  <option value="0">0</option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>
<select class="selectpicker" data-live-search="true" id="d2">
  <option value="-1">请选择</option>
</select>

第一要导入相关的体制以及js插件,由于bootstrap是依照jquery的,故要起首入jquery插件,然后bootstrap-select又是凭仗bootstrap的。故起始入bootstrap,再导入bootstrap-select.这里要留意下导入的次第吧。

  首先要导入相关的样式以及js插件,由于bootstrap是依靠jquery的,故要起首入jquery插件,然后bootstrap-select又是基于bootstrap的。故起初入bootstrap,再导入bootstrap-select.这里要注意下导入的次第吧。

二、加载数据 二级联合浮动(js)

对于动态的加载数据,依然要和煦开始展览拼接,然后refresh一下,那一个肯定不可能忘却,不然不会出来数据。由于此番的后台依旧ssh框架,故后台查询下拉框的多寡,并怎样回到json给前台页面,这里就不再详细的说了,在此以前在ligerui博文中皆有写过,并提起过。

  对于动态的加载数据,照旧要和睦开始展览拼接,然后refresh一下,那么些一定不能忘却,不然不会出来数据。由于此番的后台还是ssh框架,故后台查询下拉框的数码,并如何回到json给前台页面,这里就不再详细的说了,从前在ligerui博文中都有写过,并谈到过。

function smallScreen(){   // 个人项目中间距处理,可以省略
  if($(window).width()<768){
    $('.bootstrap-select:not([class*="col-"]):not([class*="form-control"]):not(.input-group-btn)').css({
      'width':'100%',
      'margin-top':'10px'
    });
  }
}
$(function(){
var erji=[
    ['海淀区','东城区','西城区'], // 0
    ['浦东区','金山区','黄埔区'], // 1
    ['台州市','杭州市','宁波市','嘉兴市'], // 2
    ['郑州市','洛阳市','开封市'] // 3
  ];
  var yuan = '<li data-original-index="-1" class>'     // 字符串拼接
      '<a tabindex="0" data-tokens="null" role="option" aria-disabled="false" aria-selected="false">'  
      '请选择'  
      ''  
      '</a>'  
      '</li>';
  $('#d1').change(function(){  // 一级下拉菜单选项改变事件
    if($(this).val() === '-1'){
      $('#d2').prev('div.dropdown-menu').find('ul').html(yuan);
      $('#d2').html('<option>请选择</option>');
      $('.selectpicker').selectpicker('refresh');
      smallScreen();
      return;
    }
    var cityIndex = erji[ this.value ]; // 当前下标在二级对应内容
    var html = '<li data-original-index="-1" class>'     // 下拉搜索动态加载成的标签
        '<a tabindex="0" data-tokens="null" role="option" aria-disabled="false" aria-selected="false">'  
        '请选择'  
        ''  
        '</a>'  
        '</li>';
    var erjiOption = '<option value="0">请选择</option>';  // 同事添加option
    for(var i = 0;i<cityIndex.length;i  ){
      html = '<li data-original-index=' i '>'  
          '<a tabindex="0" data-tokens="null" role="option" aria-disabled="false" aria-selected="false">'  
          '' cityIndex[i] ''  
          ''  
          '</a>'  
          '</li>';  // 此处为了兼容ie,采用的字符串拼接而不是ES6的模板字符串。
      // 添加option
      erjiOption  = '<option value=' i '>' cityIndex[i] '</option>';
    }
    $('#d2').prev('div.dropdown-menu').find('ul').html(html);
    $('#d2').html(erjiOption);
    $('.selectpicker').selectpicker('refresh');
    smallScreen();
  });
});
});

本文由澳门威利斯人发布于澳门威利斯人,转载请注明出处:select使用方法详解,select下拉搜索插件使用方法

关键词: 澳门威利斯人