Vuetify 表单在输入时未正确提交

Vuetify form not submiting correctly on enter

我有一个 Vuetify 表单,我试图在输入或单击按钮时提交。我确实让这个表单在单击按钮时工作,但输入部分是现在添加它的问题。

问题是它会刷新页面,我说默认操作正在激活。我已经尝试了下面的代码,并且还在表单中添加了一个明确的操作。没运气。我怎样才能通过单击按钮或输入(如果表单有效)和 运行 处理我的登录的方法进行提交?

模板

<v-form ref="form" v-model="valid" lazy-validation @keyup.native.enter="submit">
   <v-text-field
    v-model="email"
    :rules="emailRules"
    label="E-mail"
    class="mt-4"
    required
    outlined
   ></v-text-field>
   <v-text-field
    v-model="password"
    :rules="passwordRules"
    label="Password"
    required
    outlined
    :append-icon="show1 ? 'mdi-eye' : 'mdi-eye-off'"
    :type="show1 ? 'text' : 'password'"
   ></v-text-field>
   <v-btn
    :disabled="!valid"
    color="info"
    block
    class="mr-4"
    type="submit"
    @click="submit"
  >Sign In</v-btn>
 </v-form>

提交方式

submit() {
  this.$refs.form.validate();
  if (this.$refs.form.validate(true)) {
   let email = this.email
   email = email.toLowerCase()
   this.$store.dispatch('login', {
     email, 
     password: this.password
   })
 }
},

我只想从提交按钮中删除 type="submit"。您从中获得了不需要的提交功能。

请注意,Vuetify 处理表单中按钮默认类型的方式有所不同。如果按钮是 vuetify 元素 <v-btn>,默认类型是“按钮”,如 API docs, but the default HTML behavior for buttons inside a form is to set the type as "submit", as you can see on MDN

中所述

我就是这样做的

<v-form ref="form" v-model="valid" lazy-validation @submit.prevent="submit">

当您按下回车键或单击提交按钮时,将在表单中触发提交事件。 prevent 修饰符可防止页面重新加载,这是 HTML 语法中内置的。