麻烦会 Vue 的兄弟帮我看看这个怎么办

2019-04-30 11:11:03 +08:00
 t2doo
<div id="app">
<li><input type="checkbox" v-model="total" value="1" /></li>
<li><input type="checkbox" v-model="total" value="2" /></li>
<li><input type="checkbox" v-model="total" value="2" /></li>
</div>


<script>
var app = new Vue({
el" '#app',
data: {
total: []
}
});
</script>

这样的写法是是当 value 相同的时候,它只认 1 个,也就是 total: ["1", "2"]
要怎么样才能全部取到值呀,万分感谢
2139 次点击
所在节点    Vue.js
5 条回复
xlcoder166
2019-04-30 11:18:36 +08:00
value 必须是唯一 1, 2, 3 你把任意一个“ 2 ”改为 3 试试
t2doo
2019-04-30 11:43:42 +08:00
@xlcoder166 我是想选中的时候计算物品价格的,得找其它方法了,谢谢啦
xlcoder166
2019-04-30 12:28:18 +08:00
你原始数据应该是对象吧 提供个思路供你参考

绑定点击然后计算输出物品总价
randyo
2019-04-30 12:38:18 +08:00
你直接把整个对象绑定吧
cydysm
2019-04-30 13:37:31 +08:00
供参考
命名是 Vue 的 example
```
<div id="demo">
<input type="checkbox" id="jack" value="1" v-model="checkedNames">
<label for="jack">10</label>
<input type="checkbox" id="john" value="2" v-model="checkedNames">
<label for="john">10</label>
<input type="checkbox" id="mike" value="3" v-model="checkedNames">
<label for="mike">20</label>
<br>
<span>Checked names: {{ checkedNames }}</span>
<br/>
<span>total: {{ total }}</span>
</div>

<script>
var _init = new Vue({
el: '#demo',
data: {
checkedNames: [],
price: [10,10,30],
total: null,
},
watch:{
checkedNames(newValue) {
this.total = null;
newValue.forEach((value,index)=>{
this.total += this.price[index];
})
}
}
});
<script/>
```

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/560029

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX