bootstrap 表单中的select下拉列表数据动态加载和selected

设计实现

采用的是ajax 和 js来实现

1.在页面加载中触发ajax动态数据获取事件

2.将获取到的数据动态的赋值到<option>标签中

需要注意的点:

1.ajax的数据refresh和清除

$('.selectpicker').selectpicker('val', '');  
$('.selectpicker').selectpicker('refresh');   

2.selected 选择后数据的获取

var category = $.trim($('#slpk option:selected').val());

3.对成功接收的数据的处理

以json格式为例

接口返回数据

{
    "total": 6,
    "rows": [
        {
            "id": 1,
            "crTime": 1526973188000,
            "name": "娱乐",
            "level": 1,
            "parentLevel": "root",
            "visibility": null,
            "bookmarkNumber": 1692
        },
        {
            "id": 3,
            "crTime": 1527159165000,
            "name": "科技",
            "level": 1,
            "parentLevel": "root",
            "visibility": null,
            "bookmarkNumber": 740
        },
        {
            "id": 9,
            "crTime": 1537932274000,
            "name": "时尚",
            "level": 1,
            "parentLevel": "root",
            "visibility": null,
            "bookmarkNumber": 257
        },
        {
            "id": 10,
            "crTime": 1537932282000,
            "name": "金融",
            "level": 1,
            "parentLevel": "root",
            "visibility": null,
            "bookmarkNumber": 397
        },
        {
            "id": 11,
            "crTime": 1537932290000,
            "name": "教育",
            "level": 1,
            "parentLevel": "root",
            "visibility": null,
            "bookmarkNumber": 66
        },
        {
            "id": 13,
            "crTime": 1542787072000,
            "name": "拓展资源",
            "level": 1,
            "parentLevel": "root",
            "visibility": null,
            "bookmarkNumber": 136
        }
    ]
}

ajax处理数据

success : function(datas) {//返回list数据并循环获取  
                var select = $("#slpk");
                for (var i = 0; i < datas.rows.length; i++) { 
                	select.append("<option value='"+datas.rows[i].name+"'>"  
                            + datas.rows[i].name + "</option>");  
                } 
            }

 jsp 源码

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<link rel="stylesheet"
	href="${pageContext.request.contextPath}/static/bootstrap/css/bootstrap.min.css">
	<link rel="stylesheet"
	href="${pageContext.request.contextPath}/static/css/bootstrap-select.min.css">
<link rel="stylesheet"
	href="${pageContext.request.contextPath}/static/bootstrap-table-1.8.1/src/bootstrap-table.css">
<link rel="stylesheet"
	href="${pageContext.request.contextPath}/static/bootstrap-table-1.8.1/dist/bootstrap-table.min.css">
<!-- 行内修改css要放在bootstrap 和bootstrap-table后 -->
<link rel="stylesheet"
	href="${pageContext.request.contextPath}/static/bootstrap-table-1.8.1/bootstrap3-editable/css/bootstrap-editable.css"
	rel="stylesheet">
<script src="${pageContext.request.contextPath}/static/js/jquery.min.js"></script>
<script
	src="${pageContext.request.contextPath}/static/bootstrap/js/bootstrap.min.js"></script>
<script
	src="${pageContext.request.contextPath}/static/bootstrap-table-1.8.1/src/bootstrap-table.js"></script>
<script
	src="${pageContext.request.contextPath}/static/bootstrap-table-1.8.1/dist/bootstrap-table.min.js"></script>
<script
	src="${pageContext.request.contextPath}/static/bootstrap-table-1.8.1/src/locale/bootstrap-table-zh-CN.js"></script>
<script type="text/javascript"
	src="${pageContext.request.contextPath}/static/ztree/js/jquery.ztree.core.min.js"></script>
<script type="text/javascript"
	src="${pageContext.request.contextPath}/static/js/bootstrap-select.min.js"></script>
<script
	src="${pageContext.request.contextPath}/static/bootstrap-table-1.8.1/dist/extensions/editable/bootstrap-table-editable.min.js"></script>
<!--行内修改数据  js要放在bootstrap 和bootstrap-table后-->
<script
	src="${pageContext.request.contextPath}/static/bootstrap-table-1.8.1/bootstrap3-editable/js/bootstrap-editable.min.js"></script>

<title>RSS管理</title>
</head>
<body>
	<button class="btn btn-info btn-search" style="margin-left: 3px"
		data-toggle="modal" data-target="#myModal" >添加rss源</button>
	<table id="table"></table>
	<!-- 模态框(Modal) -->
	<div class="modal fade" id="myModal" tabindex="-1" role="dialog"
		aria-labelledby="myModalLabel" aria-hidden="true">
		<div class="modal-dialog">
			<div class="modal-content">
				<div class="modal-header">
					<button type="button" class="close" data-dismiss="modal"
						aria-hidden="true">&times;</button>
					<h4 class="modal-title" id="myModalLabel" onclick="dataSelect">添加rss源</h4>
				</div>
				<form id="form_data">
					<div class="modal-body">
						<!--   user_id: <input type="text" id="id" name="id"/> -->
						<div class="form-group">
						<div class="form-group">
							<label>rss源名称</label> <input type="text" class="form-control"
								id="rssname">
						</div>
						<div class="form-group">
							<label>rss源URL</label> <input type="text" class="form-control"
								id="rssurl">
						</div>
							<label>rss源分类</label>
							<select id="slpk" class="form-control selectpicker" ></select>  
							<!-- <select class="form-control" id="category">
								<option value="娱乐">娱乐</option>
								<option value="科技">科技</option>
								<option value="时尚">时尚</option>
								<option value="金融">金融</option>
								<option value="教育">教育</option>
								<option value="前端">前端</option>
								<option value="瞎推荐">瞎推荐</option>
								<option value="拓展资源">拓展资源</option>
							</select> -->
						</div>
						
						<input type="hidden" id="act" value="add" name="act" />
					</div>
					<div class="modal-footer">
						<button type="button" class="btn btn-default" data-dismiss="modal">关闭
						</button>
						<button type="button" onclick="add_info()" class="btn btn-primary">
							提交</button>
					</div>
				</form>
			</div>
			<!-- /.modal-content -->
		</div>
		<!-- /.modal -->
	</div>
</body>
<script type="text/javascript">
	$('#table')
			.bootstrapTable(
					{
						url : '${pageContext.request.contextPath}/RSS/getAllRSS',
						striped : true, // 隔行加亮
						pagination : true, //是否显示分页(*)
						sortable : false, //是否启用排序
						sortOrder : "desc", //排序方式
						toolbar : toolbar, //工具按钮用哪个容器  
						singleSelect : true,
						dataType : "json",
						contentType : "application/json",
						pageNumber : 1, //初始显示时页面序号                  
						pageSize : 10, //初始显示时页面大小                   
						pageList : [ 5, 10, 20, 50 ], //可供选择的每页的行数
						clickToSelect : true, //是否启用点击选中行
						sidePagination : "server",
						queryParamsType : "",
						queryParams : getPageMessage,//传参数到后台
						minimunCountColumns : 2,
						showToggle : true, //是否显示详细视图和列表视图的切换按钮
						showColumns : true, //是否显示所有的列
						showRefresh : true, //是否显示刷新按钮
						onDblClickRow : function(row, $element) {
							var id = row.ID;
							EditViewById(id, 'view');
						},
						columns : [
								{
									field : "id",
									title : "ID"
								},
								{
									field : "rssname",
									title : "rss源名称"
								},
								{
									field : "rssurl",
									title : "rss源地址",
									formatter : function(value, row, index) {
										return '<a href = "'+value+'" target="_Blank">'
												+ value + '</a>';
									}
								},
								{
									field : "rsscategory",
									title : "rss源分类"
								},
								{
									title : '操作',
									field : 'id',
									align : 'center',
									formatter : function(value, row, index) {
										return '<a href="${pageContext.request.contextPath}/RSS/deleteRSS?id='
												+ value
												+ '" onclick="return del()">删除</a> ';
									}
								} ]

					});
	//传递参数到后台
	function getPageMessage(params) {
		var temp = {
			pageSize : params.pageSize,//页面大小
			pageNumber : params.pageNumber, //第几页开始查询
		};
		return temp;
	}
	//确认删除
	function del() {
		if (!confirm("确认要删除?")) {
			window.event.returnValue = false;
		}
	}
	// 提交表单
	function add_info() {
		var category = $.trim($('#slpk option:selected').val());
		var rssname = $.trim($('#rssname').val());
		var rssurl = $.trim($('#rssurl').val());
		$.ajax({
			url : "${pageContext.request.contextPath}/RSS/addRSS",
			data : {
				rsscategory : category,
				rssurl : rssurl,
				rssname : rssname
			},
			type : "post",
			beforeSend : function() {
				$("#tip").html("<span style='color:blue'>正在处理...</span>");
				return true;
			},
			success : function(data) {
				if (null != data) {

					var msg = "添加";
					if (act == "edit")
						msg = "编辑";
					$("#tip").html(
							"<span style='color:blueviolet'>恭喜," + msg
									+ "成功!</span>");
					alert(msg + "成功");
					location.reload();
				} else {
					$("#tip").html("<span style='color:red'>失败,请重试</span>");
					alert('操作失败');
				}
			},
			error : function() {
				alert('rss已存在');
			},
			complete : function() {
				$('#acting_tips').hide();
			}
		});

		return false;
	}
	
	$(function () { 
		 var selectedValues = [];      
	    $("slpk:selected").each(function(){  
	    selectedValues.push($(this).val());   
	    });  
         $(".selectpicker").selectpicker({  
            noneSelectedText : '请选择'  
        });   
        $(window).on('load', function() {  
            $('.selectpicker').selectpicker('val', '');  
            $('.selectpicker').selectpicker('refresh');  
        }); 
        //下拉数据加载  
        $.ajax({  
            type : 'get',  
            url : "${pageContext.request.contextPath}/category/findCategory",  
            dataType : 'json',      
            success : function(datas) {//返回list数据并循环获取  
                var select = $("#slpk");
                for (var i = 0; i < datas.rows.length; i++) { 
                	select.append("<option value='"+datas.rows[i].name+"'>"  
                            + datas.rows[i].name + "</option>");  
                }  
                $('.selectpicker').selectpicker('val', '');  
                $('.selectpicker').selectpicker('refresh');   
            } 
            
        });  
    });  
</script>
</html>

 

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值