在 Vue 中,如何根据复选框的值设置禁用复选框?
In Vue how can I set checkboxes to be disabled depending on its value?
我循环检查复选框以构建一个值从 A1 到 A10 的座位选择器。我在数据 属性 中也有一个数组,定义了我想设置为禁用的值。如果此数组中的值等于复选框的值,则应禁用它。我似乎只能在选中复选框后才能访问该复选框的值。如何获取每个复选框的值?
<span class="seat" v-for="n in 10" :key="n">
<label class="checkbox-label">
<input
class="checkbox-input"
type="checkbox"
v-model="selected"
:value="'A' + n"
@change="check($event)"
:disabled="isDisabled"
true-value="1" false-value="0"
number> {{ n }}
<span class="checkmark"></span>
</label>
</span>
data() {
return {
selected: [],
disabled: ['A1', 'A2', 'A9']
}
},
computed: {
isDisabled() {
// limit seats picked to number of tickets chosen
if (this.selected.length > (this.totalTickets - 1)) {
return true
} else {
return false
}
},
},
mounted: function() {
//disable checkboxes here?
},
尝试访问 $event
目标值并检查它是否包含在 disabled
数组中:
:disabled="disabled.includes($event.target.value)"
或添加方法 n
作为参数:
:disabled="disable(n)"
在方法中:
computed:{
....
},
methods:{
disable(n){
return this.disabled.includes('A'+n);
}
}
我循环检查复选框以构建一个值从 A1 到 A10 的座位选择器。我在数据 属性 中也有一个数组,定义了我想设置为禁用的值。如果此数组中的值等于复选框的值,则应禁用它。我似乎只能在选中复选框后才能访问该复选框的值。如何获取每个复选框的值?
<span class="seat" v-for="n in 10" :key="n">
<label class="checkbox-label">
<input
class="checkbox-input"
type="checkbox"
v-model="selected"
:value="'A' + n"
@change="check($event)"
:disabled="isDisabled"
true-value="1" false-value="0"
number> {{ n }}
<span class="checkmark"></span>
</label>
</span>
data() {
return {
selected: [],
disabled: ['A1', 'A2', 'A9']
}
},
computed: {
isDisabled() {
// limit seats picked to number of tickets chosen
if (this.selected.length > (this.totalTickets - 1)) {
return true
} else {
return false
}
},
},
mounted: function() {
//disable checkboxes here?
},
尝试访问 $event
目标值并检查它是否包含在 disabled
数组中:
:disabled="disabled.includes($event.target.value)"
或添加方法 n
作为参数:
:disabled="disable(n)"
在方法中:
computed:{
....
},
methods:{
disable(n){
return this.disabled.includes('A'+n);
}
}