【问题标题】:Vuetify component v-form is not responding on the declared @submit event handlerVuetify 组件 v-form 对声明的 @submit 事件处理程序没有响应
【发布时间】:2018-08-02 22:02:16
【问题描述】:

我正在使用 Vuetify 和 VueJS(最新版本)。

这是Login.vue的小模板:

<template>
  <v-layout align-center justify-center>
    <v-flex xs12 sm8 md4>
      <v-card class="elevation-12">
        <v-toolbar dark color="success">
          <v-toolbar-title>Login form</v-toolbar-title>
          <v-spacer></v-spacer>
        </v-toolbar>
        <v-card-text>
          <v-form @submit.prevent="checkLogin">
            <v-text-field prepend-icon="person" id="userLogin" v-model="userLogin" placeholder="my@login.com"></v-text-field>
            <v-text-field prepend-icon="lock" id="userPassword" v-model="userPassword" placeholder="password" type="password"></v-text-field>
          </v-form>
        </v-card-text>
        <v-card-actions>
          <v-spacer></v-spacer>
          <!-- TODO fix the bug when form.submit not works -->
          <v-btn type="submit" color="success">Login</v-btn>
        </v-card-actions>
      </v-card>
    </v-flex>
  </v-layout>
</template>

所以,如果你看到,v-form 上有一个 @submit.prevent 调用 checkLogin 并且它在在输入时单击提交按钮或按 Enter 按钮。使用 @submit 而不使用 prevent 也没有效果。

但是!如果我像这样将事件处理程序放在 v-btn 上:

<v-btn @click.native="checkLogin">

点击按钮后(不是在输入字段中按回车键),一切都按预期工作。

那么,您能否告诉我,我在处理 v-form 提交事件时做错了什么? 谢谢!

【问题讨论】:

    标签: vue.js vuetify.js


    【解决方案1】:

    您的提交按钮不在表单内,因此它不会触发 submit 事件。

    要么重新构建您的标记,要么尝试在表单上设置id 并使用form attribute on the button,例如

    <v-form @submit.prevent="checkLogin" id="check-login-form">
    

    <v-btn type="submit" color="success" form="check-login-form">Login</v-btn>
    

    注意:form 属性不适用于any version of Internet Explorer

    【讨论】:

    • 顺便说一句,type="submit" 实际上并不需要,按钮type 属性默认具有submit 值。
    • @mcmimik 我总是更喜欢明确设置按钮type。当您想要一个简单的按钮时,它有助于避免任何混淆或意外创建提交按钮。另外,我只是复制OP的按钮代码
    • 实际上,v-btn 必须有其type="submit" 规范才能用作提交按钮。 v-btn 的默认类型是“按钮”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 2012-09-28
    • 2021-11-05
    • 1970-01-01
    • 2019-12-10
    • 1970-01-01
    相关资源
    最近更新 更多