Ant中在form表单中使用输入框或数字输入框且用v-decorator在@change中取当前值如果是单个取值,只需要使用change传过来的值即可,如果是v-model直接取即可,如:this.model.字段名即可取到值。使用到v-decorator是为...
Ant中在form表单中使用输入框或数字输入框且用v-decorator在@change中取当前值
如果是单个取值,只需要使用change传过来的值即可,如果是v-model直接取即可,如:this.model.字段名即可取到值。使用到v-decorator是为了更好的验证。
<a-form-item class="x-table-form-item">
<a-input v-decorator="['testVal']" @change="count" placeholder="请输入" style="width: 100%"></a-input >
</a-form-item>
//方法
count(val) {
console.log("val是一个对象,val.targe.value就是当前字段当前值")
}
v-decorator中change取值取到上一个值而不是当前值的解决方法,加延迟即可。
由于v-decorator不是和v-model一样实现即时的双向绑定,所以要小心form表单赋值在change方法之后,如果此时不是取change方法自带的参数值又是当前字段改变的值,那么就需要做延迟处理,才能够取到值。(在多个值进行计算,实时更新结果时,能够一个方法解决问题,而不需要每个字段一个单独change方法,完全可以共用一个方法。
count() {
console.log("开始计算")
setTimeout(()=>{
let m1 = this.form.getFieldValue('result3');
let m2 = this.form.getFieldValue('result4');
let l1 = this.form.getFieldValue('result5');
//console.log("m1:"+m1+"-m2:"+m2+"-l1:"+l1);
if (this.isValuable(m1) && this.isValuable(m2) && this.isValuable(l1)) {
this.form.setFieldsValue({
"result6": Number(((Number(m2) - Number(m1))/Number(l1) * 1000)/10).toFixed(0) * 10
})
}
let n1 = this.form.getFieldValue('result3_2');
let n2 = this.form.getFieldValue('result4_2');
let l2 = this.form.getFieldValue('result5_2');
if (this.isValuable(n1) && this.isValuable(n2) && this.isValuable(l2)) {
this.form.setFieldsValue({
"result6_2": Number(((Number(n2) - Number(n1))/Number(l2) * 1000)/10).toFixed(0) * 10
})
}
this.countGapRatio();
},10)
},
注意:js中计算应注意0等于空字符串。但是0不全等于空字符串
0 =="" 为true
0 === "" 为false
沃梦达教程
本文标题为:Vue中使用Ant框架在form表单中使用输入框或数字输入框且用v-decorator取当前值
基础教程推荐
猜你喜欢
- this[] 指的是什么内容 讨论 2023-11-30
- 浅析canvas元素的html尺寸和css尺寸对元素视觉的影响 2024-04-26
- Ajax实现动态加载数据 2023-02-01
- JS前端广告拦截实现原理解析 2024-04-22
- CSS3的几个标签速记(推荐) 2024-04-07
- js禁止页面刷新与后退的方法 2024-01-08
- 浅谈Vue2和Vue3的数据响应 2023-10-08
- vue离线环境如何安装脚手架vue-cli 2025-01-19
- 关于文字内容过长,导致文本内容超出html 标签宽度的解决方法之自动换行 2023-10-28
- 基于Vue制作组织架构树组件 2024-04-08
