我们在上篇文章中已经在SpringMVC基础框架的基础上应用了BootStrap的后台框架,在此基础上记录select2的使用。
基础项目源码下载地址为:
SpringMVC+Shiro+MongoDB+BootStrap基础框架
我们在基础项目中已经做好了首页index的访问。
现在就在index.jsp页面上做修改,实现select2的下拉选择框。
select2实现
首先我们来实现select的下拉选择框
index.jsp的代码如下:
<%@ include file="./include/header.jsp"%>
<div id="page-wrapper">
<div id="page-inner">
<div class="row">
<div class="col-md-12">
<h1 class="page-header">
Select2 <small>下拉框</small>
</h1>
</div>
</div>
<!-- /. ROW -->
<form class="form-horizontal" id="navigation">
<div class="form-group">
<label for="sourceId" class="col-sm-2 control-label">选择框:</label>
<div class="col-sm-8 input-group">
<select class="form-control" id="type" name="type">
<option value="" data-name="">- 篮球 -</option>
<option value="" data-name="">- 足球 -</option>
<option value="" data-name="">- 游泳 -</option>
</select>
</div>
</div>
</form>
<!-- /. ROW -->
</div>
<!-- /. PAGE INNER -->
</div>
<!-- /. PAGE WRAPPER -->
<%@ include file="./include/footer.jsp"%>
</body>
</html>
效果如图:
原生的select对少量的选项来说是足够使用的。但是当我们的选项有很多时,比如几十个选项。则需要使用select2。
select2实现了智能补全,模糊查询。也就是我们在select2中输入某个字就能找到相应的选项。
首先
需要把select2插件的代码放入项目中。
插件下载:
select2需要加载css和js资源:
<link rel="stylesheet" href="/plugins/select2/dist/css/select2-site.css"
type="text/css"></link>
<script src="/plugins/select2/dist/js/select2.min.js"></script>
然后在js中把select初始化成select2,type是select的id:
<script type="text/javascript">
$(document).ready(function () {
$('#type').select2();
});
</script>
这样下拉框就支持智能补全和模糊查询了。
修改后的index.jsp代码如下:
<%@ include file="./include/header.jsp"%>
<link rel="stylesheet" href="/plugins/select2/dist/css/select2-site.css"
type="text/css"></link>
<div id="page-wrapper">
<div id="page-inner">
<div class="row">
<div class="col-md-12">
<h1 class="page-header">
Select2 <small>下拉框</small>
</h1>
</div>
</div>
<!-- /. ROW -->
<form class="form-horizontal" id="navigation">
<div class="form-group">
<label for="sourceId" class="col-sm-2 control-label">选择框:</label>
<div class="col-sm-8 input-group">
<select class="form-control" id="type" name="type">
<option value="" data-name="">- 篮球 -</option>
<option value="" data-name="">- 足球 -</option>
<option value="" data-name="">- 游泳 -</option>
</select>
</div>
</div>
</form>
<!-- /. ROW -->
</div>
<!-- /. PAGE INNER -->
</div>
<!-- /. PAGE WRAPPER -->
<%@ include file="./include/footer.jsp"%>
<script src="/plugins/select2/dist/js/select2.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#type').select2();
});
</script>
</body>
</html>
效果如图:
提交select选择的值
如果select在form表单中,则点击按钮提交表达时,会自动获取到select选择的值,字段名称是select的name。
如果在js中获取select选择的值,使用代码:
JS原生获取
var obj = document.getElementByIdx_x(”testSelect”); //定位id
var index = obj.selectedIndex; // 选中索引
var text = obj.options[index].text; // 选中文本
var value = obj.options[index].value; // 选中值
jQuery中获得选中select值
第一种方式
$('#testSelect option:selected').text();//选中的文本
$('#testSelect option:selected') .val();//选中的值
$("#testSelect").get(0).selectedIndex;//索引
第二种方式
$("#tesetSelect").find("option:selected").text();//选中的文本
$("#tesetSelect").find("option:selected").val();
$("#tesetSelect").find("option:selected").get(0).selectedIndex;