javascript - 将选项设置为选中
问题描述
我正在尝试使用watch
o 更改select
使用 vuejs 选择的选项。
这是我的选择:
<option v-for="option in options" v-bind:value="option._id" :id="option.iso">
{{ option.name }}
</option>
我的手表功能可在数据selectedValue
更改时更改值
watch: {
selectedValue: function() {
console.log(document.getElementById(this.selectedValue))
document.getElementById(this.selectedValue).selected = "selected"
},
...
}
它得到正确的元素。我也尝试过使用selected = true
不工作。
不适selected
用于选项...
解决方案
如果要在选择更改时处理选项值,可以为选择声明@change 事件:
<select v-model="selectedValue" @change="onSelectChange(selectedValue)">
<option v-for="option in options" :value="option.value">
{{option.value}}
</option>
</select>
在事件处理程序中,您可以通过this
或将值直接传递给方法来处理选定的值。我更喜欢第二个,它允许保持逻辑更清晰,并且只在上下文中工作,而不考虑所有数据变量。
data() {
const options= [{
value: 100,
},{
value: 101,
},{
value: 102,
}];
return {
options,
selectedValue: null,
};
},
methods: {
onSelectChange(value) {
// here you can handle a new value and set what you want, e.g.:
const newValue = this.options[0].value;
this.selectedValue = newValue;
},
}
您可以运行此https://jsfiddle.net/igtulm/swj1u52x/3/
PS,请不要使用document.getElementById()
等来修改绕过 Vue 的元素状态,这不是使用它的正确方法。
推荐阅读
- c# - Problem with huge numbers in an incremental game (C#, Unity)
- nestjs - process.env.NODE_ENV always 'development' when building nestjs app with nrwl nx
- jquery - Why isn't jQuery Number Counter updating on html attribute change?
- python - 为什么 python 抛出 ModuleNotFoundError: No module named `blah`
- c - 对已链接的函数的未定义引用
- python - 在Python中使用多线程/多处理对矩阵元素求和
- oracle - 将免费计划 azure web 应用程序连接到 oracle 自治数据库处理
- python - What does a ¨no attribute error¨ mean in python?
- javascript - My attempt to create a simple Gantt chart (Table) using Vue.js
- swift - Swift Package Manager dynamic library