Vue+elementUI实现下拉框多选和反选

文章展示了在Vue中如何实现一个多选下拉框(el-select),包括设置焦点触发函数、禁用状态、过滤、清除等功能。同时,提供了清空选中项、全选所有选项及反选的JavaScript方法实现,这些方法通过遍历选项并更新v-model绑定的值来达到操作目的。
摘要由CSDN通过智能技术生成

Vue代码如下:

<el-form-item label="下拉框名称:">
 <el-select size="mini" v-model="testModelName" @focus="getSelectInfo" :disabled="SelectStyle"
filterable clearable placeholder="" multiple collapse-tags>
<el-button type="text" v-on:click="selectAll(1)">
		  <i class="el-icon-circle-check" />
					全选</el-button>
		 <el-button type="text" v-on:click="removeTag(1)">
			  <i class="el-icon-close" />
					清空</el-button>
				<el-button type="text" v-on:click="selectReverse(1)">
					<i class="el-icon-copy-document" />
					反选</el-button>
<el-option v-for="code in currentOptions" :key="code.value" :label="code.label"
  :value="code.value">
</el-option>
 </el-select>
</el-form-item>

其中,multiple:是否多选
collapse-tags:多选时是否将选中值按文字的形式展示
script代码如下:

//清空操作
	removeTag(type) {
	this.testModelName = [];
	},
	//全选操作
	selectAll(type) {
	this.currentOptions.map(item => {
			if(!this.testModelName.includes(item.value)){
				this.testModelName.push(item.value)
			}
		})
		
	},
	//反选操作
	selectReverse(type) {
		let val = [];
	  this.currentOptions.map(item => {
		let index = this.testModelName.indexOf(item.value);
		//判断现有选中数据是否包含如果不包含则进行反选数据
		if (index != -1) {
		} else {
			val.push(item.value)
		}
	})
	this.testModelName = val
	},

最终呈现的效果:
在这里插入图片描述
在这里插入图片描述

你可以使用 Vue 和 Element UI 来实现下拉框的二级联动。下面是一个简单的示例: 首先,在你的 Vue 组件中引入相关的库和组件: ```javascript <template> <div> <el-select v-model="selectedProvince" @change="handleProvinceChange"> <el-option v-for="province in provinces" :key="province" :label="province" :value="province"></el-option> </el-select> <el-select v-model="selectedCity"> <el-option v-for="city in cities" :key="city" :label="city" :value="city"></el-option> </el-select> </div> </template> <script> export default { data() { return { selectedProvince: '', selectedCity: '', provinces: ['省份1', '省份2', '省份3'], // 替换成你的省份数据 cities: { '省份1': ['城市1', '城市2', '城市3'], // 替换成你的城市数据 '省份2': ['城市4', '城市5', '城市6'], '省份3': ['城市7', '城市8', '城市9'] } }; }, methods: { handleProvinceChange() { this.selectedCity = ''; // 清空已选择的城市 } } }; </script> ``` 在上面的示例中,我们使用了两个 `el-select` 组件来展示省份和城市的下拉框。`provinces` 数组存储了所有的省份数据,`cities` 对象存储了每个省份对应的城市数据。当选择省份时,`handleProvinceChange` 方法会被调用,清空已选择的城市并更新城市下拉框的选项。 请注意,上述示例中的省份和城市数据都是静态的,你需要根据实际情况进行替换。你可以从后端或其他数据源中获取数据,并将其动态地传递给组件。 希望这个示例能帮助到你实现下拉框的二级联动!如有任何问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值