uview form表单手机号验证

 

在做小程序表单部分的时候,添加表单有输入手机号的时候,对输入的手机号做一个校验可以提升用户体验

html部分: 

必填项:

model="form" 表单数据对象

ref="form" 通过ref设置表单验证规则

prop 表单域model对象的属性名,在使用 validate、resetFields 方法的情况下,该属性是必填的,并且属性名要和data里form里的属性名一样

<u-form :model="form" ref="form">
  <u-form-item label="电话" prop="phone">
    <u-input v-model="form.phone"/>
  </u-form-item>
</u-form>

js部分:

export default{
  data(){
   return{
      form:{
        phone:''
        },
      rules:{
         phonne: [{
							required: false,
							message: '请输入手机号',
							trigger: ['blur'],
						},
						{
							validator:this.validateMobile,
							message: '手机号码不正确',
							trigger: ['blur'],
						}
					],
        }
      }
   }

   onReady() {
// 必须要在onReady生命周期,因为onLoad生命周期组件可能尚未创建完毕
			this.$refs.form.setRules(this.rules)
		},
   methods:{

      validateMobile(rule, value, callback) {
		  // 检查value是否为空
		  if (!value) {
		    // 如果value为空,校验通过
		    callback();
		  } else if (!this.$u.test.mobile(value)) {
		    // 如果value不为空但手机号码不正确,返回错误
		    callback(new Error('手机号码不正确'));
		  } else {
		    // 如果value不为空且手机号码正确,校验通过
		    callback();
		  }
		},
    }
  }

在提交添加和编辑表单前对表单进行验证,但是手机号的rules里的required属性为false还是会验证失败,原因是this.validateMobile里的value为空时,也返回手机号码不正确,所以给出判断如果为空一样通过校验。

this.$refs.form.validate(valid => {
    if(valid){
    //添加/编辑操作
}

})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值