在使用iview的form组件时,type为number类型的rules一直不通过,多方验证之后得到的解决方案。
rules中的type用来限制类型,input框中的type只能限制用户输入的类型,但输入的值的类型还是string,所以需要给v-model加上number修饰符,使最终值的类型与rules中type保持一致。然后表单验证可以完美通过
<Input v-model.number="userForm.weight" type="number" clearable style="width: 200px"
placeholder="请输入用户体重">
weight: [
{
required: true,
message: '用户体重不能为空',
type: 'number',
trigger: '[blur,change]'
},
{
message: '体重整数至多三位小数至多两位',
type: 'number',
pattern: /^[1-9]{1}\d{0,2}(\.\d{1,2})?$|^(0|0\.\d{1,2})$/,
trigger: 'blur' | 'change'
}
],