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
    评论
Vue 3 中的动态校验可以通过使用内置的校验和自定义校验规则来实现。我们可以在输入的时候对输入的内容进行校验,然后给出相应的提示信息。 首先,我们可以利用 Vue 3 的响应式特性来实时监听输入的变化。可以使用 `v-model` 指令将的值与 Vue 实例中的数据进行绑定。 其次,Vue 3 提供了内置的校验,可以用于检查常见的规则,例如必填、长度范围等。可以通过在元素上使用 `v-bind` 指令来绑定校验规则。在编写校验规则时,我们可以利用正则达式来实现更复杂的校验逻辑。 除了内置的校验外,我们还可以自定义校验规则。可以使用 `watch` 监听值的变化,并根据需要编写校验逻辑。在校验过程中,可以根据校验结果来给出相应的提示信息。 在提交时,可以通过调用校验方法来进行整体校验。可以遍历中的所有字段,逐一进行校验,并将校验结果保存在一个对象中。校验结果可以用于在页面上显示相应的提示信息,或者阻止的提交。 综上所述,Vue 3 中的动态校验可以通过使用响应式特性、内置的校验和自定义校验规则来实现。这样可以方便地对进行实时的校验,并给出相应的提示信息。在实际应用中,可以根据具体的场景和需求,选择合适的校验方式和规则
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值