最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

使用bootstrap-select控件

来源:动视网 责编:小采 时间:2020-11-27 20:12:02
文档

使用bootstrap-select控件

使用bootstrap-select控件:该控件依赖于Bootstrap前端框架;该控件的具体用法请看上述链接;该控件其中的一个用法是可以对select标签的选项进行搜索,从而获得精准的选项,毕竟选项可能很多;如今我想通过在搜索栏键入关键字,动态获得后台传入的选项数据,而不是一次性读取所有数据再
推荐度:
导读使用bootstrap-select控件:该控件依赖于Bootstrap前端框架;该控件的具体用法请看上述链接;该控件其中的一个用法是可以对select标签的选项进行搜索,从而获得精准的选项,毕竟选项可能很多;如今我想通过在搜索栏键入关键字,动态获得后台传入的选项数据,而不是一次性读取所有数据再
 该控件依赖于Bootstrap前端框架;

该控件的具体用法请看上述链接;

该控件其中的一个用法是可以对select标签的选项进行搜索,从而获得精准的选项,毕竟选项可能很多;

如今我想通过在搜索栏键入关键字,动态获得后台传入的选项数据,而不是一次性读取所有数据再进行搜索;

具体实现如下:

1、引入相关文件:

<head>
 <!-- 引入 Bootstrap样式 -->
 <link href="${pageContext.request.contextPath}/resources/css/bootstrap.min.css" rel="stylesheet">
 <!-- bootstrap-select样式 -->
 <link href="${pageContext.request.contextPath}/resources/css/select/bootstrap-select.min.css" rel="stylesheet">

 <!-- jQuery (Bootstrap 依赖于 jQuery) -->
 <script src="${pageContext.request.contextPath}/resources/js/jquery-3.0.0.min.js"></script>

 <!-- Bootstrap -->
 <script src="${pageContext.request.contextPath}/resources/js/bootstrap.min.js"></script>

 <!-- Bootstrap-select 控件 -->
 <script src="${pageContext.request.contextPath}/resources/js/select/bootstrap-select.min.js"></script>
 <script src="${pageContext.request.contextPath}/resources/js/select/defaults-zh_CN.min.js"></script>

</head>

  2、select标签

<form id="addForm" action="${pageContext.request.contextPath}/admin/authority/manager/saveAdd" method="post">
 <p class="form-group"> 
 <p class="input-group"> 
 <span class="input-group-addon" >管理员</span>
 <!--触发bootstrap-select需添加class="selectpicker" 搜索功能需添加data-live-search="true" -->
 <select data-size="6" class="form-control selectpicker show-tick" data-live-search="true" title="请输入管理员" id="select-manager" name="managerName" data-selectNameUrl="${pageContext.request.contextPath}/admin/authority/managerRole/getManagerByName" > 
 </select>
 </p>
 </p>
 <p class="form-group"> 
 <p class="input-group"> 
 <span class="input-group-addon" >角    色</span>
 <select class="form-control selectpicker show-tick" data-size="6" data-live-search="true" id="select-role" name="roleName" title="请选择角色" > 
 <c:forEach var="selectRole" items="${selectRoles}" varStatus="statu">
 <option value ="${selectRole.id}" >${selectRole.roleName}</option>
 </c:forEach>
 </select>
 </p>
 </p>
</form>

到这步为止,管理员的select标签下,我没有添加任何的<option></option>标签,所以选项为空

效果图:

现在我要实现的是,在搜索栏中一键入字符就触发事件:动态获得后台数据来添加<option></option>标签;

如今遇到的问题是,搜索栏是bootstrap-select控件生成的,无法事先知道怎么选择该搜索栏以触发事件,

解决方法是调用chrome的开发者模式,发现了bootstrap-select控件生成的标签,如下图所示:

知道了bootstrap-select 生成的搜索栏相关标签和属性,就可以通过选择该搜索栏触发事件;

3、触发事件:

 <script type="text/javascript">
 
 $().ready(function(){ 
 //键入字符触发事件:动态获得后台传入select选项数据 
 
 //请求的url
 var selectNameUrl = $("#select-manager").attr("data-selectNameUrl"); 
 //选择得到搜索栏input,松开按键后触发事件
 $("#select-manager").prev().find('.bs-searchbox').find('input').keyup(function () { 
 //键入的值
 var inputManagerName =$('#addForm .open input').val(); //判定键入的值不为空,才调用ajax
 if(inputManagerName != ''){
 $.ajax({
 type: 'Get',
 url: selectNameUrl,
 data: { //传递到后台的值 managerName: inputManagerName
 },
 dataType: "Json",
 success: function (Selectmanagers) { //清除select标签下旧的option签,根据新获得的数据重新添加option标签
 $("#select-manager").empty(); if (Selectmanagers != null) { 
 $.each(Selectmanagers, function (i,Selectmanager) {
 $("#select-manager").append(" <option value=\"" + Selectmanager.id + "\">" + Selectmanager.managerName + "</option>");
 }) //必不可少的刷新
 $("#select-manager").selectpicker('refresh');
 
 }
 }
 })
 }else 
 //如果输入的字符为空,清除之前option标签
 $("#select-manager").empty();
 $("#select-manager").selectpicker('refresh'); 
 }); 
 }); </script>

效果如下图:

【相关视频推荐:Bootstrap教程】

文档

使用bootstrap-select控件

使用bootstrap-select控件:该控件依赖于Bootstrap前端框架;该控件的具体用法请看上述链接;该控件其中的一个用法是可以对select标签的选项进行搜索,从而获得精准的选项,毕竟选项可能很多;如今我想通过在搜索栏键入关键字,动态获得后台传入的选项数据,而不是一次性读取所有数据再
推荐度:
标签: 使用 属性 Bootstrap
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top