Validation Vue js vee验证密码确认始终为false
我正在尝试使用vee validate来验证使用此代码的密码Validation Vue js vee验证密码确认始终为false,validation,vue.js,vuejs2,vee-validate,Validation,Vue.js,Vuejs2,Vee Validate,我正在尝试使用vee validate来验证使用此代码的密码 <div> <input type="password" placeholder="Password" v-model="password" v-validate="'required|min:6|max:35|confirmed'" name="password" /> </div> <div&g
<div>
<input type="password"
placeholder="Password"
v-model="password"
v-validate="'required|min:6|max:35|confirmed'"
name="password" />
</div>
<div>
<span>{{ errors.first('password') }}</span>
</div>
<div>
<input type="password"
placeholder="Confirm password"
v-model="confirmPassword"
v-validate="'required|target:password'"
name="confirm_password" />
</div>
<div>
<span>{{ errors.first('confirm_password') }}</span>
</div>
{{errors.first('password')}
{{errors.first('confirm_password')}
但是它总是说密码确认不匹配。
我的代码出了什么问题?您的密码输入必须具有
ref=“password”
-这就是vee validate查找目标的方式:
(谢谢,)
已确认:{target}-输入必须与目标具有相同的值
输入,由{target}指定为目标字段的名称
此外,Vee验证语法有错误,请将目标:
更改为确认:
v-validate=“'required | target:password'”
应该是
v-validate=“'required | confirmed:password'”
看看下面的基本示例,它将检查两件事:
- 第二个输入字段是否有任何输入值
- 如果是,第二个输入值是否与第一个输入值匹配
var-app=新的Vue({
el:“#应用程序”,
数据:{
消息:“你好,Vue!”
}
})
正文{
背景:#20262E;
填充:15px;
字体系列:Helvetica;
}
#应用程序{
宽度:60%;
背景:#fff;
边界半径:10px;
填充:15px;
保证金:自动;
}
Vue.使用(验证);
输入密码
{{errors.first('password')}
{{errors.first('password_confirmation')}
下面的代码适合我:
{{错误[0]}
{{错误[0]}
从'vee validate'导入{extend};
扩展('密码'{
参数:['target'],
验证(值,{target}){
返回值===目标;
},
消息:“密码确认不匹配”
});
导出默认值{
数据:()=>({
密码:“”,
确认:“”
})
};
此外,您的密码输入必须具有ref=“password”
,因为vee validate就是这样找到“target”的@Ryley更新了我的答案。非常感谢。非常有用的答案v-validate可以从中找到目标name@BennettDams谢谢。这对我有帮助。请你把裁判的事大胆一点好吗?这对我来说真的很重要。特别感谢ryley guy-你,我的人!。这很有效,感谢您提供更多信息https://logaretm.github.io/vee-validate/advanced/cross-field-validation.html#targeting-其他字段
<template>
<ValidationObserver>
<ValidationProvider rules="required|password:@confirm" v-slot="{ errors }">
<input type="password" v-model="password" />
<span>{{ errors[0] }}</span>
</ValidationProvider>
<ValidationProvider name="confirm" rules="required" v-slot="{ errors }">
<input type="password" v-model="confirmation" />
<span>{{ errors[0] }}</span>
</ValidationProvider>
</ValidationObserver>
</template>
<script>
import { extend } from 'vee-validate';
extend('password', {
params: ['target'],
validate(value, { target }) {
return value === target;
},
message: 'Password confirmation does not match'
});
export default {
data: () => ({
password: '',
confirmation: ''
})
};
</script>