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取当前值
猜你喜欢
- 基于CORS实现WebApi Ajax 跨域请求解决方法 2023-02-14
- ajax实现输入提示效果 2023-02-14
- JS实现左侧菜单工具栏 2022-08-31
- 关于 html:如何从 css 表中删除边距和填充 2022-09-21
- layui数据表格以及传数据方式 2022-12-13
- javascript 判断当前浏览器版本并判断ie版本 2023-08-08
- 深入浅析AjaxFileUpload实现单个文件的 Ajax 文件上传库 2022-12-15
- 1 Vue - 简介 2023-10-08
- jsPlumb+vue创建字段映射关系 2023-10-08
- vue keep-alive 2023-10-08