3
A
回答
5
我不使用Vuejs,但看着文件后:
var TypesArr = {
Fruit: [{ text: 'Apple', value: 'Apple' }, { text: 'Orange', value: 'Orange' }, { text: 'Mango', value: 'Mango' }],
Meat: [{ text: 'Steak', value: 'Steak' }, { text: 'Pork', value: 'Pork' }]
}
var selectTwo = new Vue({
el: '#select2',
data: {
selected: TypesArr['Fruit'][0],
options: TypesArr['Fruit']
},
methods: {
update: function (value)
{
this.options = TypesArr[value]
}
}
})
new Vue({
el: '#select1',
data: {
selected: 'Fruit',
options: [ { text: 'Fruit', value: 'Fruit' }, { text: 'Meat', value: 'Meat' } ]
},
methods: {
onChange: function (event)
{
selectTwo.update(event.srcElement.value)
}
}
})
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<select v-on:change="onChange" id="select1">
<option v-for="option in options" v-bind:value="option.value">
{{ option.text }}
</option>
</select>
<select id="select2">
<option v-for="option in options" v-bind:value="option.value">
{{ option.text }}
</option>
</select>
2
使用纯JavaScript
var TypesArr = {Fruit: ['Apple', 'Orange', 'Mango'], Meat: ['Steak', 'Pork']}
function ChangeContext(value)
{
if (TypesArr.hasOwnProperty(value))
{
var out = ''
for (var i = 0; i < TypesArr[value].length; i++)
{
out += '<option value="' + TypesArr[value][i] + '">' + TypesArr[value][i] + '</option>'
}
document.getElementById('select2').innerHTML = out
}
}
ChangeContext('Fruit')
<select onchange="ChangeContext(this.value)">
<option value="Fruit">Fruit</option>
<option value="Meat">Meat</option>
</select>
<select id="select2"></select>
+0
看起来很大,这将是理想的,但是这是纯JavaScript,我需要一个与Vuejs – TheShun
1
其他答案不是真的'Vue'的答案。
你如何处理这取决于你想用选择框做什么。我假设你会处理表单上的输入。
两个选项:
- 使用计算属性
- 使用v-是否显示不同的选择框。如果每个选择框都有不同的V型
计算属性
<template>
<div class="container">
<select id="firstInput" v-model="selected">
<option v-for="option in firstInputOptions" :value="option">
{{ option }}
</option>
</select>
<select id="secondInput" v-model="secondInputSelected">
<option v-for="option in secondInputOptions" :value="option">
{{ option }}
</option>
</select>
</div> <!-- /container -->
</template>
<script>
export default {
computed: {
secondInputOptions(){
return this.selected === 'fruit' ? this.fruit : this.vegetables
}
},
data() {
return {
fruit: ['apple', 'banana', 'orange'],
vegetables: ['carrot', 'beet', 'celery'],
firstInputOptions: ['fruit', 'vegetables']
selected: 'fruit',
secondInputSelected: ''
}
},
}
</script>
条件呈现
<template>
<div class="container">
<select id="firstInput" v-model="selected">
<option v-for="option in firstInputOptions" :value="option">
{{ option }}
</option>
</select>
<select id="secondInputFruit" v-model="selected" v-if="selected == 'fruit'">
<option v-for="option in secondInputOptions" :value="option">
{{ option }}
</option>
</select>
<select id="secondInputVegetables" v-model="vegetableSelected" v-else-if="selected == 'vegetables'">
<option v-for="option in secondInputOptions" :value="option">
{{ option }}
</option>
</select>
</div> <!-- /container -->
</template>
<script>
export default {
data() {
return {
fruits: ['apple', 'banana', 'orange'],
fruitSelected: '',
vegetables: ['carrot', 'beet', 'celery'],
vegetableSelected: '',
firstInputOptions: ['fruit', 'vegetables']
selected: 'fruit'
}
},
}
</script>
相关问题
- 1. VueJS 2:修改其他选择元素的选择选项
- 2. 用jQuery动态更改选择选项
- 3. Vuejs - 更改从外部选择的选定选项
- 4. VueJS选择指令不更新更改选项
- 5. 更改选择输入选择国家?
- 6. 动态选择选项离子2
- 7. 动态更改选择器
- 8. 选择:更改searchField动态
- 9. 动态更改选择值
- 10. 更改输入值,对于每行中选择选项
- 11. 角2 ngModel更改选择框不更新选定的选项
- 12. 用php动态改变选择选项
- 13. HighCharts。动态更改选项
- 14. dijit.form.filteringselect动态更改选项
- 15. 手动或动态输入选择选项(php)
- 16. 根据选择的选项更改输入大小
- 17. 当我选择选项时更改占位符的输入
- 18. 允许用户在选择输入中更改输入选择输入
- 19. 更改动态添加的选择选项元素的名称
- 20. 动态值复选框Vuejs 2
- 21. jQuery的选择选项onchange动态输入字段
- 22. Vuejs更改多个选择简单的选择
- 23. 动态选择使用选项选择2不工作
- 24. 角动态地更改选择的选项从指令
- 25. 基于动态选择选项值更改文本框的值
- 26. 更改选择选项选择
- 27. 选择时更改选项
- 28. 更改var选择选项
- 29. 更改输入文本以选择选项,反之亦然
- 30. 当选择选项时,Javascript更改输入值
的例子我用这个vue实例https://jsfiddle.net/aj6g87dh/1/ tyring这是为什么第二个选择是否对改变有帮助吗?选择是空的 – TheShun
@ TheShun你能设法让它工作吗?我也有同样的问题。 – Mike
@Mike - 你有这样的感觉吗?林新vue和具有相同的问题!这个由fuzyCap发布的帖子似乎并没有工作,可能可以下载到cdn上的vue.js版本,当你点击“运行代码片段”时,它将被拖入。 – Birdy