两个下拉框的联动功能实现

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> new document </title>
<meta name="generator" content="editplus" />
<meta name="author" content="" />
<meta name="keywords" content="" />
<meta name="description" content="" />
<script type="text/javascript" src="../js/prototype.js"></script>
</head>

<body>
<table>
<tr>
<td><label>开始时间</label></td>
<td>
<select name="fromTime" onchange="cs_set_first_time();"><option value="0">13:00</option>
<option value="1">13:30</option>
<option value="2">14:00</option>
<option value="3">14:30</option>
<option value="4">15:00</option>
<option value="5">15:30</option>
<option value="6">16:00</option>
<option value="7">16:30</option>
<option value="8">17:00</option>
<option value="9">17:30</option>
<option value="10">18:00</option>
<option value="11">18:30</option>
<option value="12">19:00</option>
<option value="13">19:30</option>
<option value="14">20:00</option>
<option value="15">20:30</option>
<option value="17">21:30</option>
<option value="16">21:00</option>
<option value="19">22:30</option>
<option value="18">22:00</option>
<option value="20">23:00</option></select>

</td>
</tr>
<tr>
<td><label>结束时间</label></td>
<td>
<select name="toTime"><option value="0">13:00</option>
<option value="1">13:30</option>
<option value="2">14:00</option>
<option value="3">14:30</option>
<option value="4">15:00</option>
<option value="5">15:30</option>
<option value="6">16:00</option>
<option value="7">16:30</option>
<option value="8">17:00</option>
<option value="9">17:30</option>
<option value="10">18:00</option>
<option value="11">18:30</option>
<option value="12">19:00</option>
<option value="13">19:30</option>
<option value="14">20:00</option>
<option value="15">20:30</option>
<option value="17">21:30</option>
<option value="16">21:00</option>
<option value="19">22:30</option>
<option value="18">22:00</option>
<option value="20">23:00</option></select>
</td>
</tr>
</table>

<script type="text/javascript">
<!--
function cs_set_first_time(){
$(toTime).value=parseInt($F(fromTime))+2
}
//-->
</script>
</body>
</html>
在 Vue 3 中实现两个下拉框联动功能,通常需要利用 `v-model` 实现双向数据绑定,并通过 `@change` 或 `@update:modelValue` 监听第一个下拉框值的变化,从而动态更新第二个下拉框的选项。 以下是一个完整的示例,展示了如何在 Vue 3 中实现两个下拉框联动效果: ### ### 基本结构 在模板部分,定义两个 `<select>` 元素,分别绑定机构和部门的值: ```html <template> <div> <select v-model="form.organ" @change="getDept"> <option v-for="item in organOptions" :key="item.id" :value="item.id"> {{ item.name }} </option> </select> <select v-model="form.dept"> <option v-for="dept in deptOptions" :key="dept.id" :value="dept.id"> {{ dept.name }} </option> </select> </div> </template> ``` ### ### 数据定义 在脚本部分,定义 `form`、`organOptions` 和 `deptOptions` 数据,并实现 `getDept` 方法来根据所选机构更新部门选项: ```javascript <script setup> import { reactive, ref } from 'vue'; // 定义表单数据 const form = reactive({ organ: '', dept: '' }); // 机构选项 const organOptions = ref([ { id: '1', name: '机构A' }, { id: '2', name: '机构B' } ]); // 部门选项,初始为空 const deptOptions = ref([]); // 根据机构获取部门 const getDept = () => { // 模拟调用接口获取部门数据 if (form.organ === '1') { deptOptions.value = [ { id: '101', name: '部门A1' }, { id: '102', name: '部门A2' } ]; } else if (form.organ === '2') { deptOptions.value = [ { id: '201', name: '部门B1' }, { id: '202', name: '部门B2' } ]; } else { deptOptions.value = []; } }; </script> ``` ### ### 说明 - `v-model` 实现了 `form.organ` 和 `form.dept` 的双向绑定。 - `@change="getDept"` 监听机构下拉框的变化,调用 `getDept` 方法更新部门选项。 - `getDept` 方法根据 `form.organ` 的值模拟从后端获取对应部门数据的过程,并更新 `deptOptions` [^2]。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值