【发布时间】:2017-07-26 02:09:59
【问题描述】:
我有一个简单的表格,上面有一个计算器,用于计算包括运费和税费在内的充电器金额。如果表单已提交并返回错误,如何使用 Vue JS 将旧输入显示到表单的 value 字段中?实例值恢复正确,但它们未显示在表单中。
查看
<div class="form-group">
<label for="totalAmount">Total Amount</label>
<div class="input-group">
<div class="input-group-addon">$</div>
<input type="totalAmount" class="form-control" id="totalAmount" name="totalAmount" value="{{old('totalAmount')}}" v-model="totalAmount" v-on:change="getTotal" placeholder="0.00" required>
</div>
</div>
<div class="form-group">
<label for="shipAmount">Shipping Amount</label>
<div class="input-group">
<div class="input-group-addon">$</div>
<input type="shipAmount" class="form-control" id="shipAmount" name="shipAmount" value="{{ old('shipAmount') }}" v-model="shipAmount" v-on:change="getTotal" placeholder="0.00">
</div>
</div>
<div class="form-group">
<label for="taxRate">Tax Rate</label>
<div class="input-group">
<div class="input-group-addon">%</div>
<input type="taxRate" class="form-control" id="taxRate" name="taxRate" value="{{ old('taxRate') }}" v-model="taxRate" v-on:change="getTotal" placeholder="0.00">
</div>
</div>
<div class="widget-body text-center">
<h4 class="m-b-md">Total Amount $ @{{ combinedAmount }}</h4>
</div>
JS 文件
new Vue({
el: '#app-content',
data: {
billSameAsShip: '',
isHidden: 'true',
totalAmount: '',
shipAmount: '',
taxRate: '',
combinedAmount: ''
},
computed: {
totalAmount2: function () {
return this.totalAmount = {{ old('totalAmount') ?? 0 }};
},
shipAmount2: function () {
return this.shipAmount = {{ ( old('shipAmount') ?? 0 ) }};
},
taxRate2: function () {
return this.taxRate = {{ ( old('taxRate') ?? 0 ) }};
}
},
beforeUpdate() {
this.getTotal()
this.totalAmount = this.totalAmount2;
},
methods: {
onChange: function() {
if(this.billSameAsShip == 'false'){
this.isHidden = !this.isHidden;
}
else {
this.isHidden = Boolean('true');
}
},
checkNaN: function() {
if(isNaN(parseFloat(this.totalAmount))){
this.totalAmount = 0
}
if(isNaN(parseFloat(this.shipAmount))){
this.shipAmount = 0
}
if(isNaN(parseFloat(this.taxRate))){
this.taxRate = 0
}
},
getTotal: function() {
this.checkNaN();
this.combinedAmount = (parseFloat(this.totalAmount) + parseFloat(this.shipAmount)) * (1 + (parseFloat(this.taxRate /100)));
}
}
})
</script>
【问题讨论】:
标签: php laravel laravel-5 vue.js vuejs2