vue后台表单(联系电话和时间选择器的自定义校验规则)

1.联系电话的自定义校验规则

 

 

  // 联系电话校验
        validateMobilePhone (rule, value, callback) {
            if (value === '') {
                callback(new Error('请输入负责人联系电话'))
            } else {
                if (value !== '') {
                    let reg = /^1[3456789]\d{9}$/ // 正则校验
                    if (!reg.test(value)) {
                        callback(new Error('请输入有效的手机号码'))
                    }
                }
                callback()
            }
        },

2.时间选择器组件的自定义校验规则

 如果我们选择绑定值的格式化是年月日类型的,以下是我们的校验规则处理

 

  // 报名起至时间校验 (这是年月日时分秒的格式化校验处理)
        validateStartTime(rule, value, callback) {
            const endTime = this.form.endTime
            if (!value) {
                callback(new Error('请输入报名时间'))
            } else if (endTime && value >= endTime) {
                callback(new Error('开始时间需早于结束时间'))
            } else {
                callback()
            }
        },
        validateEndTime(rule, value, callback) {
            const startTime = this.form.startTime
            const isTime = new Date(startTime) < new Date()
            if (!value) {
                callback(new Error('请输入报名时间'))
            } else if (value <= startTime) {
                callback(new Error('结束时间需晚于开始时间'))
            } else if (isTime && new Date(value).getTime() <= Date.now()) {
                callback(new Error('结束时间需晚于当前时间'))
            } else {
                callback()
            }
        },
  // 这是 value-format="timestamp" 时间戳的格式化处理
 validateStartTime(rule, value, callback) {
            const endTime = +this.form.endTime
            if (!value) {
                callback(new Error('请输入报名时间'))
            } else if (endTime && new Date(value) >= new Date(endTime)) { 
                // 转换为时间戳去进行比较
                callback(new Error('开始时间需早于结束时间'))
            } else {
                callback()
            }
        },
        validateEndTime(rule, value, callback) {
            const startTime = +this.form.startTime
            const isGoing = new Date(startTime) < new Date()
            if (!value) {
                callback(new Error('请输入报名时间'))
            } else if (new Date(value) <= new Date(startTime)) {
                callback(new Error('结束时间需晚于开始时间'))
            } else if (isGoing && new Date(value) <= new Date()) {
                callback(new Error('结束时间需晚于当前时间'))
            } else {
                callback()
            }
        },

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值