在vue框架下,写了两个独立的下拉框A/B,想要在选择A下拉框的某一个子节点选项的时候触发B下拉框显示
已经先通过对B下拉框写入v-if="false"对它进行不显示操作
请教,如何实现在选择A下拉框之后显示出B
已经解决,在想要操作的层级绑定一个v-show="xxx",随便取个名字,在return里面先定义它在第一视觉是否显示,在任何想要的操作触发方法下定义它是否显示,例如,我第一次希望在没有操作的前提下,让他不显示,就在return里面写一个xxx:false,在出发点击事件中写入到点击方法内
submit(){
this.xxx=true;
}
chang事件
可以在A下拉框的选中事件 @change中设置B下拉框的显示状态,例如:
1, 在A下拉框中添加选中事件:
<template>
<div>
<select v-model="selectedA" @change="selectA">
<option disabled value="">Please select one</option>
<option v-for="(optionA, indexA) in optionsA" :value="optionA.value" :key="indexA">{{optionA.label}}</option>
</select>
<select v-if="showB" v-model="selectedB">
<option disabled value="">Please select one</option>
<option v-for="(optionB, indexB) in optionsB" :value="optionB.value" :key="indexB">{{optionB.label}}</option>
</select>
</div>
</template>
2., 在Vue实例中定义showB及selectA方法:
<script>
export default {
data() {
return {
selectedA: '',
optionsA: [
{label: 'Option A1', value: 'a1'},
{label: 'Option A2', value: 'a2'},
{label: 'Option A3', value: 'a3'}
],
selectedB: '',
optionsB: [
{label: 'Option B1', value: 'b1'},
{label: 'Option B2', value: 'b2'},
{label: 'Option B3', value: 'b3'}
],
showB: false
}
},
methods: {
selectA() {
if (this.selectedA === 'a1') {
this.showB = true;
} else {
this.showB = false;
}
}
}
}
</script>
selectA
方法根据 A 下拉框选中的值来控制 B 下拉框的显示或隐藏状态。如果选中的值为 'a1',则显示 B 下拉框,否则隐藏 B 下拉框。
这样,当选中 A 下拉框选项时,B 下拉框的显示状态即会发生变化。
把v-if="false" 里的false用变量装起来 ,通过A的change事件把这个false改为true就行了