vue.js - 如何防止 v-text-field 上的 TypeError 输入键
问题描述
我有以下带有单个 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>
目前这些是我的方法:
onEnterPressed() {
console.log('enter pressed');
},
processNewName() {
...
}
当按下 Enter 按钮时,我正在使用@submit.prevent
停止刷新页面。
到目前为止,一切似乎都在工作。但是,当我点击回车按钮时,在控制台中我收到以下错误消息:
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 插件。在没有该插件的情况下检查了不同的浏览器,发现一切正常。
解决方案
此错误来自您的 LastPass 插件,在 Github 上讨论了各种框架:
这不是最好的解决方案,它更像是一种解决方法,但现在我要么:
- 禁用 LastPass
- 避免使用
<v-form>
推荐阅读
- javascript - 在javascript中删除某些 - 以前未知 - 字符串的一部分
- reactjs - 如何在具有以下错误的反应寄存器上修复此错误
- c# - 如果任务被锁定,它会返回队列,还是也锁定线程?
- regex - 将此正则表达式限制为 129 个字符
- spring - 哪个日志框架可以逐行记录 Spring Boot 2.x 中执行的代码?
- postgresql - 使用 Postgresql 在 AWS Elastic Beanstalk 中安装 python 程序会导致 pg_config 错误
- css - 如何在 SVG 中将一个圆圈附加到另一个圆圈之上?
- javascript - 在 html 表单提交时在 app.js 中做一个简单的响应
- python - 词典排序
- postgresql - 通过 Jira 容器连接到 Postgres 容器