最近用vee-validate做表单校验模块,下午做两次输入密码校验的时候,明明按照官方的方法写了,还是一片报错,百度各种方法都没解决掉,结果无意试了下发现对了,赶紧记录下来。为了看的清晰,把无关紧要的代码都删了,直接看两个input属性:
<input name="passwd1" v-model.trim="form.passwd1" ref="passwd1" v-validate="{ required: true , min: 6 , max: 20 , regex: /^(?![\d]+$)(?![a-zA-Z]+$)(?![^\da-zA-Z]+$).{6,20}$/ }" type="password" data-vv-as="密码1">
<input id="password2" name="passwd2" v-model.trim="form.passwd" v-validate="{ required: true , min: 6 , max: 20 , confirmed: 'passwd1', regex: /^(?![\d]+$)(?![a-zA-Z]+$)(?![^\da-zA-Z]+$).{6,20}$/}" type="password" data-vv-as="密码2">
最开始没把 confirmed: 'passwd1' 加引号,特别坑爹,导致一直报错。注意大括号写法时候,此属性值必须加引号!!!
注意第一次密码框要加 ref="xxx" 属性,第二次密码框 v-validate 加 confirmed: 'xxx'。
下面这是官方写法,也贴上来:
<input v-validate="'required'" name="password" type="password" :class="{'is-danger': errors.has('password')}" placeholder="Password" ref="password">
<input v-validate="'required|confirmed:password'" name="password_confirmation" type="password" :class="{'is-danger': errors.has('password_confirmation')}" placeholder="Password, Again" data-vv-as="password">
另附官方文档链接:http://vee-validate.logaretm.com/v2/guide/rules.html#confirmed