今天和朋友接了个国外的项目。
启动项目后第一步注册账号的时候就发现填写确认密码时,总是显示和上一行的密码不一致。
我:??
发现表单验证用的是vee-validation,查了下文档,发现项目中设置规则的属性和文档的不一致,但是属性值是一致的(估计是版本不同)。
然后发现confirm这个功能必须显式指定其目标:confirmed:target (如下第三行)
这个target即是要重复验证的表单的一个ref属性(r如下第一行)。
<input v-validate="'required'" ref="password" name="password" type="password" :class="{'is-danger': errors.has('password')}" placeholder="Password" >
<span v-show="errors.has('password')" class="help is-danger">{{ errors.first('password') }}</span>
<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">
然后就正常了。
然后我看了下package-lock.json,发现好些包的版本和client或server中的不一致,原来框架原作者在前后端项目的package.json所有依赖插件的版本号前都加了'^'字符。。导致我们在安装依赖时直接获取新版本。但是代码中却用的是旧版本,所以一些新旧版本语法不同导致bug。。
额。。。