使用select2插件 多选存值,多值回显

使用select2插件 多选存值,多值回显,及遇到的坑~~~~

1.引入js css文件

<link href="${ctxStatic}/jquery-select2/3.4/select2.min.css?v=<%=vs %>" rel="stylesheet" />
<script src="${ctxStatic}/jquery-select2/3.4/select2.min.js" type="text/javascript"></script>

2.jsp页面标签写法

<div>
	<select id="sel_expert" class="form-control" multiple="multiple" 
	onchange="$('#hid_expert').val($('#sel_expert').val());">
		<c:forEach items="${experts }" var="expert">
			<option value="${expert.id }" >${expert.expert_name }</option>
		</c:forEach>
	</select>
	<!-- 用于保存值,传到后台 -->
	<input id="hid_expert" name="expert" value="${expertIds }" type="hidden">
</div>

3.取值、回显

var expertIdsStr = $("#hid_expert").val();// 取值
if (expertIdsStr) {
	var arr = expertIdsStr.split(",");
	$("#sel_expert").select2({
		placeholder : '请选择评价专家',
		maximumSelectionLength:2,
		allowClear : false
	});
	// 回显时,使用以下三种方式都可以
	//.val( arr ).trigger("change");
	//$("#sel_expert").val(arr).trigger("change");
	$("#sel_expert").select2('val', arr);
}

4.回显时需要注意:如果arr中的值,任何一个值都不会与select的option中value值重合,那么即使回显的方法是对的,select2也不会回显。。。
我就是死在了这里。。。数据回显做了好几个小时。。。。在此记录~~~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值