用 select 实现多选

<!-- 保存成一个html文件可以观看效果 -->
<HTML> 
<HEAD> 
<TITLE>选择下拉菜单</TITLE> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
<META NAME="Description" CONTENT="Power by hill"> 
</HEAD> 
<BODY> 
<p>选定一项或多项然后点击添加或移除(按住shift或ctrl可以多选),或在选择项上双击进行添加和移除。</p> 
<form method="post" name="myform"> 
<table border="0" width="400"> 
<tr> 
<td width="40%"> 
<select style="height:200px;WIDTH:300px" multiple name="list1" size="10" οndblclick="moveOption(document.myform.list1, document.myform.list2)">
<!--用forEach遍历出所有的option-->
<option value="北京">北京</option> 
<option value="上海">上海</option> 
<option value="山东">山东</option> 
<option value="安徽">安徽</option> 
<option value="重庆">重庆</option> 
<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> 
</td> 
<td width="20%" align="center">
<input type="button" value="全部添加" οnclick="moveAllOption(document.myform.list1, document.myform.list2)"><br/> 
<br/>
<input type="button" value="添加" οnclick="moveOption(document.myform.list1, document.myform.list2)"><br/> 
<br/> 
<input type="button" value="移除" οnclick="moveOption(document.myform.list2, document.myform.list1)"><br/> 
<br/> 
<input type="button" value="全部移除" οnclick="moveAllOption(document.myform.list2, document.myform.list1)"> 
</td> 
<td width="40%"> 
<select style="height:200px;WIDTH:300px" multiple name="list2" size="12" οndblclick="moveOption(document.myform.list2, document.myform.list1)"> 
</select> 
</td> 
 
</tr> 
</table> 
值:<input type="text" name="city" size="40"> 
</form> 
<script language="JavaScript"> 
<!--操作全部-->
function moveAllOption(e1, e2){ 
var fromObjOptions=e1.options; 
for(var i=0;i<fromObjOptions.length;i++){ 
fromObjOptions[0].selected=true; 
e2.appendChild(fromObjOptions[i]); 
i--; 
document.myform.city.value=getvalue(document.myform.list2); 
}
 
<!--操作单个-->
function moveOption(e1, e2){ 
var fromObjOptions=e1.options; 
for(var i=0;i<fromObjOptions.length;i++){ 
if(fromObjOptions[i].selected){ 
e2.appendChild(fromObjOptions[i]); 
i--; 
document.myform.city.value=getvalue(document.myform.list2); 
 
function getvalue(geto){ 
var allvalue = ""; 
for(var i=0;i<geto.options.length;i++){ 
allvalue +=geto.options[i].value + ","; 
return allvalue; 
 
function changepos1111(obj,index) 
if(index==-1){ 
if (obj.selectedIndex>0){ 
obj.options(obj.selectedIndex).swapNode(obj.options(obj.selectedIndex-1)) 
else if(index==1){ 
if (obj.selectedIndex<obj.options.length-1){ 
obj.options(obj.selectedIndex).swapNode(obj.options(obj.selectedIndex+1)) 
 
 
 
</script> 
</BODY> 
</HTML> 
 
 
==================效果图==============================
 
用 select 实现多选 - 王超 - 奋斗为容颜

转载于:https://www.cnblogs.com/zhaoxd/archive/2013/05/31/3110203.html

### 使用 `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、付费专栏及课程。

余额充值