gpt4 book ai didi

javascript - 多个复选框,使用 Vue.js 2.0 中的动态作弊数据绑定(bind)到同一个数组

转载 作者:太空宇宙 更新时间:2023-11-04 16:10:49 26 4
gpt4 key购买 nike

我正在尝试重新创建以使用多个复选框,绑定(bind)到同一数组以获取客户选择。

我正在遵循文档中提供的详细信息。

<input type="checkbox" id="jack" value="Jack" v-model="checkedNames">
<label for="jack">Jack</label>
<input type="checkbox" id="john" value="John" v-model="checkedNames">
<label for="john">John</label>
<input type="checkbox" id="mike" value="Mike" v-model="checkedNames">
<label for="mike">Mike</label>
<br>
<span>Checked names: {{ checkedNames }}</span>

唯一的区别是值和 ID 是从 v-for 循环生成的。

我的代码

        <div class="panel panel-default" v-for="choice in meal_choices">
<div class="panel-heading">{{choice}}</div>
<input type="checkbox" v-bind:id="choice" v-bind:value="choice" v-model="selected_meal">
<div class="panel-body">
<span>Checked names: {{ selected_meal }}</span>
</div>
</div>

数据中确实有 selected_meal。

这会导致以下结果:所有复选框都被选中,一旦单击,它们都会一起响应 true 或 false。

更新完整代码

<template>
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">{{title}}</div>

<div class="panel-body">
Meals
<select v-model="selected_meal" class="form-control">
<option v-for="meal in meals" v-bind:value="meal.value">
{{ meal.text }}
</option>
</select>
Days
<select v-model="selected_day" v-on:click="creditsCal" class="form-control">
<option v-if="selected_meal === 1" v-for="day in one_meal_days" v-bind:value="day.value">
{{ day.text }}
</option>
<option v-if="selected_meal === 2" v-for="day in two_meal_days" v-bind:value="day.value">
{{ day.text }}
</option>
<option v-if="selected_meal === 3" v-for="day in three_meal_days" v-bind:value="day.value">
{{ day.text }}
</option>
</select>
<span>Number of meals: {{ selected_meal }}</span>
<span>Number of days: {{ selected_day }}</span>
<span>Credits: {{ credits }}</span>
</div>
</div>
<div class="panel panel-default" v-for="choice in meal_choices">
<div class="panel-heading">{{choice}}</div>
<input type="checkbox" v-bind:id="choice" v-bind:value="choice" v-model="select_meal">
<div class="panel-body">
<span>Checked names: {{ select_meal }}</span>
</div>
</div>
</div>
</div>
</template>

<script>
import axios from 'axios';
export default {

mounted() {
console.log('Component ready.');
// console.log(meal_choices);

},

data : function() {
return {
title: 'Heat and eat',
selected_meal: 1,
selected_day: 3,
credits: '',
select_meal: '[]',
meal_choices: '[]',
className: false,
meals: [
{ text: 1, value: 1 },
{ text: 2, value: 2 },
{ text: 3, value: 3 }
],
day: [
{ text: 1, value: 1 },
{ text: 2, value: 2 },
{ text: 3, value: 3 }
],
meals: [
{ text: 1, value: 1 },
{ text: 2, value: 2 },
{ text: 3, value: 3 }
],
one_meal_days: [
{ text: 3, value: 3 },
{ text: 4, value: 4 },
{ text: 5, value: 5 }
],
two_meal_days: [
{ text: 3, value: 3 },
{ text: 4, value: 4 },
{ text: 5, value: 5 }
],
three_meal_days: [
{ text: 2, value: 2 },
{ text: 3, value: 3 },
{ text: 4, value: 4 },
{ text: 5, value: 5 }
]
}
},

created() {
var self = this;
axios.get('/meals')
.then(function (response) {
self.meal_choices = response.data;
console.log(response.data);
})
.catch(function (error) {
console.log(error);
});
},

methods: {

},

computed: {
creditsCal: function(){
return this.credits = this.selected_meal*this.selected_day;
}
}
}
</script>

Screenshot of issue

最佳答案

您只需确保 selected_meal 是一个数组:

new Vue({
el: '#app',
data: {
meal_choices: ['Eggs', 'Fries', 'Cheese'],
selected_meal: []
}
});

这是 JSFiddle:https://jsfiddle.net/49yng51p/

关于javascript - 多个复选框,使用 Vue.js 2.0 中的动态作弊数据绑定(bind)到同一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41521216/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com