VeeValidate,确认规则不适用于 ValidationProvider

Posted

技术标签:

【中文标题】VeeValidate,确认规则不适用于 ValidationProvider【英文标题】:VeeValidate, Confirmed rule not working on ValidationProvider 【发布时间】:2019-08-02 04:05:06 【问题描述】:

我正在尝试在密码验证提供者上添加 vee-validate 规则并确认密码。 v-validate 必须在我必须向文本框添加规则的地方工作。但就我而言,我必须使用验证提供程序。请帮忙!!!

版本

vee-validate: 2.1.7
vue: 2.9.6

代码

<ValidationObserver ref="adminInfo">
<v-layout row wrap>
<v-flex xs12 md6>
    <ValidationProvider name="password" rules="required|min:5|max:35" ref="password">
    <v-text-field
      solo
      v-model="administratorInfo.newPassword"
      label="Set New Password"
      required

      slot-scope="
          errors,
          valid
        "
      :error-messages="errors"
      :success="valid"
    ></v-text-field>
    </ValidationProvider>
  </v-flex>
  <v-flex xs12 md6>
    <ValidationProvider name="confirm password" rules="'required|confirmed:password'">
    <v-text-field
      solo
      v-model="administratorInfo.cNewPassword"
      label="Confirm Password"
      required
      slot-scope="
          errors,
          valid
        "
      :error-messages="errors"
      :success="valid"
    ></v-text-field>
    </ValidationProvider>
  </v-flex>
</v-layout>
</ValidationObserver>

得到错误:

无法读取未定义的属性“$watch”

【问题讨论】:

【参考方案1】:

通过将 ref="password" 替换为 vid="password" 终于找到了解决方案。找到解决方案here。

但我不明白 vid 是什么以及为什么是 vid?

【讨论】:

当使用validation-provider时,你必须使用vid而不是ref:vee-validate.logaretm.com/v2/guide/components/…【参考方案2】:

这可能无关,但请确保您的确认密码 ValidationProvider 中有 v-model

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于VeeValidate,确认规则不适用于 ValidationProvider的主要内容,如果未能解决你的问题,请参考以下文章

在 IOS 9 中,javascript 警报和确认弹出窗口不适用于 Webkit

VeeValidate 教程

VeeValidate 3.x 基本用法

为啥这些 Firestore 规则不适用于 Flutter Firebase 插件?

Laravel:有时规则不适用于输入类型=文件

fxFlex 规则不适用于 mat-sidenav