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取当前值
基础教程推荐
猜你喜欢
- Javascript Bootstrap的网格系统,导航栏和轮播详解 2023-08-11
- Ajax+smarty技术实现无刷新分页 2022-12-15
- HTML clearfix清除浮动讲解 2022-11-20
- cocos creator游戏实现loading加载页面,游戏启动加载动画 2022-10-29
- 使用ajax跨域调用springboot框架的api传输文件 2023-02-23
- JS滚动到顶部踩坑解决记录 2023-07-10
- 在实战中可能碰到的几种ajax请求方法详解 2023-02-01
- 关于Ajax跨域问题及解决方案详析 2023-02-23
- Ajax发送和接收请求 2022-12-15
- uniapp开发微信小程序自定义顶部导航栏功能实例 2022-10-21