使用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也不会回显。。。
我就是死在了这里。。。数据回显做了好几个小时。。。。在此记录~~~

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 在 HTML 中,可以使用 "multiple" 属性来实现 "select" 元素的多回显。可以在 "select" 标签中加入 "multiple" 属性来实现。例如:`<select multiple>`。在中多个项时,可以使用 JavaScript 来获取已中的项。 ### 回答2: Element UI是一套基于Vue.js 2.0的桌面端组件库,可帮助开发者快速构建出优美、易用的界面。其中select组件提供了多功能,可以让用户一次性择多个项。在用户择完成后,需要将已择的回显到页面上,方便用户查看和操作。 Element的select回显主要有以下几种方式: 1. 使用v-model双向绑定数据 首先,在select组件标签上使用v-model指令进行双向绑定,将择的项绑定在一个数组中。例如: ``` <el-select v-model="selectedOptions" multiple> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> ``` 其中,selectedOptions就是绑定的数组,options为需要择的项。 然后,在页面上需要回显项的地方,使用v-for指令遍历selectedOptions数组,并输出每个项的label即可。 2. 使用ref属性获取组件实例 另外一种方式是在select组件上使用ref属性获取组件实例。然后在择完成后,通过组件实例的方法获取所择的项,并进行回显。 例如: ``` <el-select ref="mySelect" multiple> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> ``` 然后,在择完成后,通过ref获取组件实例,再使用getSelected方法获取用户已择的项,最后通过遍历项并显示label进行回显。 ``` this.$refs.mySelect.getSelected().forEach(option => { console.log(option.label); }); ``` 总结 以上就是Element的select回显的两种方式。使用v-model双向绑定数据方式简单方便,而使用ref属性获取组件实例方式方法灵活,开发者可以根据实际需求进行择。无论哪种方式,开发者都需要对所中的项进行遍历,将项中的label进行回显。 ### 回答3: element的select组件是一个常用的下拉框组件,用于择单个项。但有时候我们需要择多个项,并将中的回显到页面上,element也提供了相应的解决方案。 首先,我们需要将select组件的multiple属性设置为true,即可启用多功能。同时,我们也需要给select组件绑定一个v-model,用于中的。例如: ``` <el-select v-model="selectedOptions" multiple> <el-option label="项1" value="option1"></el-option> <el-option label="项2" value="option2"></el-option> <el-option label="项3" value="option3"></el-option> </el-select> ``` 在数据中,我们需要定义selectedOptions数组,用于中的。例如: ``` data() { return { selectedOptions: [] } } ``` 此时,我们已经可以在页面上中多个项,但还需要将中的回显到页面上。我们可以使用forEach遍历selectedOptions数组,动态生成标签来显示中的项,例如: ``` <template> <div> <el-select v-model="selectedOptions" multiple> <el-option label="项1" value="option1"></el-option> <el-option label="项2" value="option2"></el-option> <el-option label="项3" value="option3"></el-option> </el-select> <div> <span v-for="(option, index) in selectedOptions" :key="index">{{option}}</span> </div> </div> </template> <script> export default { data() { return { selectedOptions: [] } } } </script> ``` 以上就是element的select回显的实现方法。通过设置multiple属性和绑定v-model,我们可以启用多功能并中的,在页面上通过动态生成标签的方式回显中的项。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值