如何防止 v-text-field 上的 TypeError 输入键

Iga*_*gal 5 vue.js vuetify.js

我有以下带有单个 v-text-field 和一个按钮的 Vuetify 表单:

<v-form v-model="valid" ref="form" @submit.prevent>
      <v-container>
        <v-layout>
          <v-flex
            xs12
            md8
          >
            <v-text-field
              v-model="name"
              :rules="nameRules"
              :counter="max"
              maxlength='max'
              :label="$t('Save new name')"
              required
              clearable
              @keyup.enter.prevent='onEnterPressed'
            ></v-text-field>
          </v-flex>

          <v-flex
            xs12
            md4
          >
            <v-btn
              :loading="saving"
              :disabled="!valid || saving"
              color="info"
              @click="processNewName"
            >
              <v-icon left dark>fa-save</v-icon>
              {{ $t('Save') }}
            </v-btn>
          </v-flex>
        </v-layout>
      </v-container>
    </v-form>
Run Code Online (Sandbox Code Playgroud)

目前这些是我的方法:

onEnterPressed() {
  console.log('enter pressed');
},
processNewName() {
  ...
}
Run Code Online (Sandbox Code Playgroud)

@submit.prevent当点击 Enter 按钮时,我正在使用停止刷新页面。

到目前为止,一切似乎都在起作用。但是,当我按下 Enter 按钮时,在控制台中我收到此错误消息:

Uncaught TypeError: Cannot read property 'type' of undefined
at e.setFieldValue (onloadwff.js:71)
at HTMLFormElement.formKeydownListener (onloadwff.js:71)
Run Code Online (Sandbox Code Playgroud)

在 onloadwff.js 中,错误指向以下代码:

if("password"===r.type)
Run Code Online (Sandbox Code Playgroud)

所以r是未定义的。我怎样才能防止这种情况发生?我已经尝试过使用@keyup.enter.prevent.native,尝试@keydown.enter.prevent,尝试点@submit.preventprocessNewName法...此错误不断显示出来。

我在 Vuetify 站点中检查了 v-text-field 组件,似乎有时他们在某些示例中也会出现此错误,但不是全部。但我不知道该怎么做才能防止这种情况发生。有任何想法吗?

编辑

经过进一步调查,我发现它onloadwff.js属于 LastPass 插件。在没有该插件的情况下在不同的浏览器中检查,发现一切正常。

Sti*_*eur 1

此错误来自您的 LastPass 插件,并在 Github 上的各种框架上进行了讨论:

这不是最好的解决方案,它更像是一种解决方法,但现在我要么:

  • 禁用 LastPass
  • 避免使用<v-form>