vue中两个或多个input输入框必填一个原来可以这样实现!(输入框二选一必填校验函数+英文数字/中文数字正则)

需求:1.两个输入框至少填一个;2.一个只能输入英文和数字,另一个只能输入中文和数字。

接下来我们分三步来实现:

第一步:定义校验函数(因为有两个输入框,所以这里两个输入框的校验函数)

      var validateNameZh = (rule, value, callback) => {
        if (this.makeBrandFrom.nameEn == '' && value == '') {
          callback(new Error('中文名英文名必填一个'))
        } else {
          callback()
        }
      };
      var validateNameEn = (rule, value, callback) => {
        if (this.makeBrandFrom.nameZh == '' && value == '') {
          callback(new Error('中文名英文名必填一个'))
        } else {
          callback()
        }
      };

这里我们需要注意一下书写位置(放在data里面)

 第二步:把我们的校验函数添加到校验规则里面and把输入时的正则也写好

 rules: {
          nameZh: [{
              pattern: /[\u4e00-\u9fa50-9]/,
              message: '只能输入中文或数字',
              trigger: 'blur'
            },
            {
              validator: validateNameZh,
              trigger: 'blur'
            },
          ],
          nameEn: [{
              pattern: /[a-zA-Z0-9]/,
              message: '请输入英文或数字',
              trigger: 'blur'
            }, {
              validator: validateNameEn,
              trigger: 'blur'
            },

          ],
        }

注意:路由规则也是写在data里面,并且需要与你的表单进行绑定哦!

第三步:到这里已经完成了,让我们一起看看效果吧!

 

 

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3,可以使用Element-Plus组件库的`el-input`组件,并使用`rules`属性自定义校验规则。 下面是一个例子,展示如何校验电话号码和座机号码: ```html <template> <div> <el-input v-model="telephone" placeholder="请输入电话号码" :rules="telephoneRules"></el-input> <el-input v-model="landline" placeholder="请输入座机号码" :rules="landlineRules"></el-input> </div> </template> <script> export default { data() { return { telephone: '', landline: '', telephoneRules: [ { required: true, message: '电话号码不能为空', trigger: 'blur' }, { validator: (rule, value, callback) => { const reg = /^1[3456789]\d{9}$/; if (reg.test(value)) { callback(); } else { callback(new Error('电话号码格式错误')); } }, trigger: 'blur', }, ], landlineRules: [ { required: true, message: '座机号码不能为空', trigger: 'blur' }, { validator: (rule, value, callback) => { const reg = /^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/; if (reg.test(value)) { callback(); } else { callback(new Error('座机号码格式错误')); } }, trigger: 'blur', }, ], }; }, }; </script> ``` 在上述代码,我们定义了两个输入框,分别用`telephone`和`landline`绑定数据。为了进行校验,我们在`el-input`组件上添加了`rules`属性,并分别定义了`telephoneRules`和`landlineRules`数组,用于保存校验规则。其,每个规则对象包含了`required`属性表示该项必填,`message`属性表示校验失败时的提示信息,以及`validator`属性表示校验函数。 在校验函数,我们使用了正则表达式来判断输入的电话号码和座机号码是否符合要求。如果符合要求,就调用`callback()`函数表示校验成功;否则,就调用`callback(new Error('错误信息'))`函数表示校验失败,并传入相应的提示信息。 这样,就可以实现Vue3使用Element-Plus组件库的`el-input`组件,校验电话号码和座机号码的功能了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值