【问题标题】:Vuetify password confirmation not workingVuetify 密码确认不起作用
【发布时间】:2019-09-05 09:13:04
【问题描述】:

我需要创建一个注册掩码,并且我想在继续之前确保用户输入的两个密码相同,但我不知道如何在 Vuetify 中进行操作。

我已尝试为其创建规则,但它似乎不起作用。

这是我的代码:

模板:

    <v-row>
      <v-col>
        <v-flex md5>
          <v-text-field v-model="pw1"
            label="Password"
            type="password"
            :rules="pwdRules"
          ></v-text-field>
        </v-flex>
      </v-col>

      <v-col>
        <v-flex md5>
          <v-text-field v-model="pw2"
            label="Confirm Password"
            type="password"
            :rules="pwdConfirm"
          ></v-text-field>
        </v-flex>

      </v-col>
    </v-row>

脚本:

export default {
    data: () => ({
      pwdRules: [ v => !!v || 'Password required' ],
      pwdConfirm:[ v => !!v || 'Confirm password', v => v === this.pw1 || 'Passwords do not match'],
    }),

有趣的是,如果我使用此代码 sn-p v =&gt; v === this.pw1 || 'Passwords do not match' 它甚至会使 Vuetify 忽略检查字段是否为空的第一条规则。如果我删除这个 sn-p 规则正常工作并检查该字段是否为空,但它显然不检查两个密码是否相同。

【问题讨论】:

  • 不是。自昨天以来,我读了这个问题 5 次,第一个答案字面上说“很简单,只需使用 vee-validate”,但没有解释如何使 Confirmed: 属性起作用,我得到的只是一个错误。第二个答案对我不起作用。

标签: javascript html vue.js vuetify.js


【解决方案1】:
  1. Vue 组件的 data must be a function,不是箭头函数,因为箭头函数没有 this。来自 Vue.js docs

不要在选项属性或回调上使用箭头函数,例如 created: () =&gt; console.log(this.a)vm.$watch('a', newValue => this.myMethod())。由于箭头函数没有this,因此 将被视为任何其他变量并通过词法查找 在找到之前的父作用域,通常会导致错误,例如 Uncaught TypeError: Cannot read property of undefinedUncaught TypeError: this.myMethod is not a function

  1. 您正在引用pw1pw2,它们未在data 中定义。

这里是Codepen

【讨论】:

  • 效果很好。非常感谢!!你能告诉我为什么它没有按照我尝试的方式工作吗?
  • @Andor Németh,实际上我错了,这可以在没有computed pwdConfirm 的情况下完成。您还有其他错误,我现在将编辑我的答案和 Codepen
  • 我尝试了你的 codepen,但是当我插入你的 javascript 代码时,我得到的只是一个空白页。注意:我导入了 'vue' 和 'vuetify'
  • @Andor Németh,您在浏览器的控制台中看到了哪些错误?
  • 错误是“您正在使用仅运行时的 Vue 构建,其中模板编译器不可用。要么将模板预编译为渲染函数,要么使用包含编译器的构建。”但我已经通过将import Vue from 'vue' 更改为import Vue from 'vue/dist/vue.js' 解决了它,它现在可以工作了。再次感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2021-02-22
  • 2016-12-21
  • 1970-01-01
  • 1970-01-01
  • 2016-12-22
  • 2015-01-06
  • 2014-02-14
  • 2019-12-01
相关资源
最近更新 更多