首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >验证$refs.form.reset和$refs.form.resetValidation的错误

验证$refs.form.reset和$refs.form.resetValidation的错误
EN

Stack Overflow用户
提问于 2020-04-21 01:50:52
回答 5查看 8.4K关注 0票数 1

在尝试执行this.$refs.form.reset()this.$refs.form.resetValidation()时,我会得到以下错误

Vue警告: v-on处理程序中的错误:"TypeError:无法读取未定义的属性‘重置’“

我就是这样用的

代码语言:javascript
复制
<v-form
    ref="form"
    v-model="valid"
    lazy-validation
    style="padding: 20px">
    <v-row>
        <v-col>
            <v-text-field
                v-model="form.name"
                :rules="rules.name"
                :counter="10"
                label="Bank Name" required/>
        </v-col>
    </v-row>
</v-form>

并在单击窗体所在的对话框时调用此方法。

代码语言:javascript
复制
createItem() {
    this.cancel();
    this.mode = "New Bank";
    this.dialog = true;
},
cancel() {
    this.dialog = false;
    this.$refs.form.reset()
},

为什么会发生这种情况?

EN

回答 5

Stack Overflow用户

发布于 2020-04-21 03:18:38

如果调用createItem(),则单击用于打开对话框的按钮。然后,在呈现表单组件之前,可以调用cancel()中的this.$refs.form.reset()。因此,一种选择是在创建项后重置窗体,或者可以使用

代码语言:javascript
复制
this.$nextTick(() => {
    if (this.$refs[form]) {
      this.$refs.form.reset();
    }
});
票数 3
EN

Stack Overflow用户

发布于 2020-04-21 17:10:23

当您调用"this.dialog =false“时,对话框可能不存在,因此当您调用"this.$refs.form.reset()”时,"this.$refs.form“是未定义的。守则应如下所示:

代码语言:javascript
复制
cancel() {
    this.$refs.form.reset()
    this.dialog = false;
}
票数 2
EN

Stack Overflow用户

发布于 2020-04-21 06:22:44

在开始对话时这样做。

代码语言:javascript
复制
cancel() {
    this.$refs.form.reset()
    this.dialog =true;

},
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61334724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档