iview DatePicker 校验

iview DatePicker 校验

当日期类型为一段区间(type=“daterange”)时,页面挂载后validDate的值为[’’,’’],所以表单验证需要对数组的每一个元素进行分开验证,并且验证的类型为type: ‘date’。

<template>
  <div>
    <Form ref="form" :model="formData" :rules="formRules" :label-width="110">
	  <FormItem label="有效期" required prop="validDate">
        <DatePicker v-model="formData.validDate" type="daterange" split-panels style="width: 100%" @on-change="handleValidDateChange"></DatePicker>
      </FormItem>
    </Form>
  </div>
</template>
<script>
  data(){
    return {
	  formData: {
	    validDate: []
	  },
	  formRules: {
	    validDate: [{
	      type: 'array', required: true,
	        fields: {
	          0: {type: 'date', required: true, message: '请输入有效期', trigger: 'blur'},
	          1: {type: 'date', required: true, message: '请输入有效期', trigger: 'blur'}
	        }
        }]
      }
    };
  },
  methods: {
  	handleValidDateChange(value){
      this.formData.validDateStart = value[0];
      this.formData.validDateEnd = value[1];
    },
  }
</script>

tips:页面挂载后validDate的值为[’’,’’],但如果form表单用于弹窗或其他类控件时,在使用时需要重新初始化数据,那么需要将validDate的值依然初始化[’’,’’]才会正常走验证,否则
1、若初始化为[],页面不会重新刷新,则走自带的验证validDate is required,这是需要将验证规则改为:

validDate: [{
  type: 'array', required: true, message: '请输入有效期', trigger: 'blur'
}]

2、若直接将formDate初始化{},不单独定义validDate的值,则validDate的值为undefined,不会走验证,一直为验证通过。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值