javascript - 如何通过修改另一个字段的值来计算一个字段的值,反之亦然
问题描述
我有两个领域
<input v-model="amount_ttc" @change="setAmountHtva">
<input v-model="amount_htva" @change="setAmountTtc">
我的数据:
export default {
data () {
return {
amount_ttc: 0,
amount_htva: 0,
vat: 21
}
},
methods: {
setAmountHtva () {
this.amount_htva = parseFloat(this.amount_ttc / (1 + this.vat / 100)).toFixed(2)
},
setAmountTtc () {
this.amount_ttc = parseFloat(this.amount_htva * (1 + this.vat / 100)).toFixed(2)
}
}
}
如果我填写该amount_ttc
字段,我希望amount_htva
自动计算该字段。
如果我填写该amount_htva
字段,我希望amount_ttc
自动计算该字段。
我在做什么是行不通的。
我收到一条错误消息,通知我无限循环。
我认为这是因为当我修改字段 A 时,我计算了字段 B(它发生了变化,所以我再次计算字段 A)
我不知道如何得到我想要的。
解决方案
我刚刚在 codepen.io 中测试了这些代码片段,效果很好。没有任何错误。
HTML 代码:
<div id="app">
<form>
<input v-model="amount_ttc" @change="setAmountHtva">
<input v-model="amount_htva" @change="setAmountTtc">
</form>
</div>
JS代码(你应该在js设置中链接vuejs v2):
new Vue({
el: '#app',
data: {
amount_ttc: 0,
amount_htva: 0,
vat: 21
},
methods: {
setAmountHtva () {
this.amount_htva = parseFloat(this.amount_ttc / (1 + this.vat / 100)).toFixed(2)
},
setAmountTtc () {
this.amount_ttc = parseFloat(this.amount_htva * (1 + this.vat / 100)).toFixed(2)
}
}
})
推荐阅读
- android - 空对象上的 FrameLayout.getId()
- python - 返回.png 来自 Jenkins 构建的文件
- cmake - 使用没有相对路径的 CMake 创建 Zip
- python - 如何访问 RecycleView Kivy 的元素?
- node.js - 使用 Discord.js 在 .json 文件中搜索商品并显示其价格
- reactjs - 获取所有数据后React js刷新功能组件
- heroku - 使用 Fixie(或其他)通过 Heroku 中的静态 IP 发出请求?
- kubernetes - 有没有办法在 kubernetes 的环境变量上使用方括号?
- excel - Excel 的 Power Query 编辑器中的“我们在计算分布时遇到错误”和“发生意外错误”
- reactjs - 使用 React 将搜索过滤器添加到具有表格的手风琴