我使用的是区间日期控件(iviewUI组件日期控件应该都会有这个问题,未作验证),所以使用正常的表单验证会有问题。
区间日期控件代码
<FormItem label="数据异常时间" prop="abnormalTime">
<DatePicker
format="yyyy-MM-dd"
type="daterange"
placement="bottom-start"
placeholder="请选择开始结束日期"
:editable="false"
style="width: 200px"
v-model="abnormalTime"
@on-change="onDateChange"
></DatePicker>
</FormItem>
验证方法
ruleInline: {
abnormalTime: [
{
required: true,
message: '请选择查询时间',
trigger: 'blur',
pattern: /.+/
},
{
message: '请选择查询时间',
validator: validateAbnormalTime,
trigger: 'blur'
}
]
},
const validateAbnormalTime = (rule, value, callback) => {
if (!value[0] || !value[1]) {
callback(new Error(rule.message));
} else {
callback();
}
};
重点在于验证那块添加的一点代码
pattern: /.+/
踩过的坑
input 默认输入为String类型
如果在表单验证中声明 type:number,建议input中加上number属性,将用户的输入自动转换为 Number 类型。
select 单选多选
提示: 单选返回的是一个项,而多选返回的是数组。
dataPicker v-model失效
必须on-change返回并赋值才能实现数据绑定,否则:value无法捕捉日期的而选择变动。