1.对InputNumber 控件验证不通过问题=>对其对应的rules添加type:'number'属性
<template>
<Form ref="formDynamic" :model="formDynamic" :label-width="80" style="width: 300px">
<FormItem
v-for="(item, index) in items"
v-if="item.status"
:key="index"
:label="'Item ' + item.index"
:prop="item.fieldName"
:rules="{required: true, message: 'Item ' + item.index +' can not be empty', trigger: 'blur',type:'number'}">
<InputNumber :max="10" :min="1" v-model="formDynamic[item.fieldName]"></InputNumber>
</FormItem>
<FormItem>
<Button type="primary" @click="handleSubmit('formDynamic')">Submit</Button>
<Button @click="handleReset('formDynamic')" style="margin-left: 8px">Reset</Button>
</FormItem>
</Form>
</template>
<script>
export default {
data () {
return {
formDynamic:{}
items: [
{
fieldName:'test1',
value: '',
index: 1,
status: 1
}
]
}
},
methods: {
handleSubmit (name) {
this.$refs[name].validate((valid) => {
if (valid) {
console.log('this',this)
this.$Message.success('Success!');
} else {
this.$Message.error('Fail!');
}
})
},
handleReset (name) {
this.$refs[name].resetFields();
}
}
}
</script>
2.对于类型像Select,input控件不同导致数据变化的验证,为了解决方便,统一对trigger设置为'blur,change'