element官网数字类型校验的错误处理:如果非必填,校验结果不通过,必须注意一下两点。
1.v-model加修饰符 v-model.number
2.校验rules添加字符串强制转换数字方法
transform (value) {return Number(value)}
3. 点击按钮提交时,如果表单没有输入数字值,组件会默认该值为0,如果后台不允许输入默认值,必须在前端处理,如下:
strNumber(value){
if(Number(value)===0){
return ''
} else {
return Number(value);
}
}
以官网为例,修改后代码如下
<el-form :model="numberValidateForm" ref="numberValidateForm" label-width="100px" class="demo-ruleForm">
<el-form-item
label="年龄"
prop="age"
:rules="[
{ type: 'number', message: '年龄必须为数字值',transform (value) {return Number(value)}}
]"
>
<el-input type="age" v-model.number="numberValidateForm.age" autocomplete="off">