Validation Vue js vee验证密码确认始终为false

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

我正在尝试使用vee validate来验证使用此代码的密码

<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>