如何防止v文本字段上的TypeError输入键输入

时间:2019-06-20 05:13:47

标签: vue.js vuetify.js

我具有以下Vuetify表单,其中包含单个v文本字段和一个按钮:

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

目前这些是我的方法:

onEnterPressed() {
  console.log('enter pressed');
},
processNewName() {
  ...
}

当我按下Enter键时,我正在使用@submit.prevent来停止刷新页面。

到目前为止,一切似乎都正常。但是,当我按下Enter键时,在控制台中我收到以下错误消息:

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

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

if("password"===r.type)

因此r未定义。如何防止这种情况发生?我已经尝试过使用@keyup.enter.prevent.native,尝试过@keydown.enter.prevent,试图将@submit.prevent指向processNewName方法...这个错误不断出现。

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

编辑

在进一步调查后,我发现onloadwff.js属于LastPass插件。在没有该插件的情况下在其他浏览器中签入,发现一切正常。

1 个答案:

答案 0 :(得分:0)

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

这不是最佳解决方案,它更像是一种解决方法,但现在我还是:

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