【发布时间】:2026-01-10 17:55:01
【问题描述】:
我想根据选择 1 中的选择显示/隐藏选择菜单 2 中的某些选项,并根据选择菜单 2 中选择的内容显示/隐藏选择菜单 3 中的某些选项。
例如,如果用户在第一个菜单中选择“Subject01”,我想在菜单 2 中隐藏“Subject04”和“Subject08”。如果用户在选择 2 中选择“Subject016”,我想隐藏“菜单 3 中的 Subject11'。我有几个基于主题选择的场景。所以这些只是例子。
我可以添加一个类,但我不知道如何添加到单个标签。
任何帮助表示赞赏。
代码:
<template>
<select v-model="one" id="selectone">
<option v-for="subject in subjects" :key="subject">
{{ subject }}
</option>
</select>
<select v-model="two" :disabled="!one" id="selecttwo">
<option
v-for="subject in subjects.filter((item) =>
item.split(' ')[0].indexOf(this.one.split(' ')[0])
)"
:key="subject"
>
{{ subject }}
</option>
</select>
<select v-model="three" :disabled="!two" id="selectthree">
<option
v-for="subject in subjects.filter(
(item) =>
item.split(' ')[0].indexOf(this.one.split(' ')[0]) &&
item.split(' ')[0].indexOf(this.two.split(' ')[0])
)"
:key="subject"
>
{{ subject }}
</option>
</select>
<div v-if="one">You have selected: {{ one }} {{ two }} {{ three }}</div>
</template>
<script>
export default {
data() {
return {
subjects: [
"Subject01",
"Subject02",
"Subject03",
"Subject04",
"Subject05",
"Subject06",
"Subject07",
"Subject08",
"Subject09",
"Subject10",
"Subject11",
"Subject12",
"Subject13",
"Subject14",
"Subject15",
"Subject16",
],
one: "",
two: "",
three: "",
};
},
methods: {},
};
</script>
<style>
li {
list-style-type: none;
}
.hide {
display: none;
}
.show {
display: block;
}
</style>
【问题讨论】:
-
这听起来像是使用computed property 的好案例。
标签: javascript vue.js