select实现多选

一. 需求:
实现多选,并且可以显示原值

二.代码实现
选择用select下拉框实现多选。

<select class="required" data-live-search="true" name="areaCode" id="areaCode"  multiple="multiple">
    <option value="1" selected="selected">选项1</option>
    <option value="2" selected="selected">选项2</option>
    <option value="3" selected="selected">选项3</option>
</select>

1.multiple="multiple"实现多选效果
2.data-live-search="true" 添加模糊匹配下拉选项,辅助选择功能
3.selected="selected" 设置默认选中项

需要注意的是,在这里这样写的话,虽然实质上选项1/选项2/选项3的值都被选中了,但是这些选项并不会出现在下拉的文本框中,用户点击进入页面的时候,视觉效果上其实是没有选中项的。
因此,需要在初始化时,添加:

$('select[data-live-search="true"]').select2();

语句,对该文本框进行初始化。

此外,如果要动态清空下拉选项的话,语句为:

$("#storeArea").val("");  //清空已经选中的内容
$("#storeArea option").remove();  //清空所有下拉选项
$('select[data-live-search="true"]').select2();  //清空展示选中项的文本框

三.后台传值
select多选传到后台的值是逗号分隔的字符串,以上述下拉选项为例,后台接收到的值为:
[“1”,”2”,”3”]

### 使用 `el-select` 实现地区 为了实现一个地区的择器,可以利用 Element Plus 的 `el-cascader` 组件来处理层级关系的数据源。对于简单的需求,则可以直接采用 `el-select` 配合 `multiple` 属性完成。下面是一个基于 `el-select` 来构建地区择的例子。 #### 地区项准备 首先定义好地区列表作为下拉菜单中的可项: ```javascript const regionOptions = [ { value: 'zhejiang', label: '浙江' }, { value: 'fujian', label: '福建'}, // 更省份... ]; ``` #### Vue 组件模板部分 创建一个包含 `el-select` 和其他必要组件的 HTML 结构: ```html <template> <div class="region-selector"> <el-select v-model="selectedRegions" multiple placeholder="请择地区" style="width: 100%;"> <el-option v-for="item in regionOptions" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </div> </template> ``` #### 数据绑定与事件监听 设置响应式的变量用于存储已中的值,并通过 watch 或者 change 事件触发相应的逻辑操作: ```javascript <script setup> import { ref, watch } from 'vue'; // 假设这是从服务器获取到的初始数据 let selectedRegions = ref([]); watch(selectedRegions, (newValue) => { console.log('Selected regions:', newValue); }); </script> ``` 上述代码展示了如何使用 `el-select` 创建一个区域择控件[^1]。需要注意的是,如果涉及到更复杂的场景比如级联择(省市区),则应该考虑使用 `el-cascader` 而不是单纯的 `el-select`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值