Vutify FAST Fail判断并显示错误消息,但表格仍会发送.

<script setup>

  import { ref } from "vue"
  
  const firstName = ref('')
  const firstNameRules = [
    value => {
      if (value?.length > 3) return true
      return 'First name must be at least 3 characters.'
    }
  ]
   
  function submit() {
    alert(`${firstName}`)  
  }
 
</script>

<template>
  <v-form fast-fail @submit.prevent="submit">
      <v-text-field
        v-model="firstName"
        label="First name"
        :rules="firstNameRules"
      ></v-text-field>
      </v-form>
</template>

提交函数始终运行,即使显示错误也是如此.如何使差错判断防止表单被提交?

推荐答案

:fast-fail属性在判断失败时停止验证(与始终验证所有输入的默认行为不同).它与提交或提交事件无关.

相反,@submit处理程序收到SubmitEventPromise,这是与Promise合并的常规提交事件.您可以等待验证结果的promise ,并在验证失败时中止提交:

async function submit(submitEventPromise) {
  const { valid, errors } = await submitEventPromise
  if (!valid) {
    return // abort submit
  }
  ... // perform submit
}

这是一张playground元的

Vue.js相关问答推荐

在移动版本中使用标准的 v-data-table

vue 不重新渲染数据更改

如何在 vue2.7 中删除 slot-scope

何时将代码拆分为 Nuxt 中的组件?

我可以在未注册的组件上构建 Vue.js 失败吗?

Vuex:如何等待动作完成?

Vue 单元测试:您正在开发模式下运行 Vue?

如何在 vue.js 模板中显示空间而不是 undefined 和 null?

将检测外部点击自定义指令从 Vue 2 迁移到 Vue 3

如何在 vue 3 脚本设置中使用

vuejs中通过变量动态调用方法

Vue.js 无法切换字体真棒图标

Vue JS 在渲染前等待数据

在路由更改之前显示确认对话框

如何从组件内的单点捕获 vuejs 错误

如何在 Vuetify DataTable 组件中设置初始每页行数值?

如何在 Promise 回调中更新 Vue 应用程序或组件的属性?

仅在提交时验证 vuetify 文本字段

vue-router 如何使用 hash 推送({name:"question"})?

在 Vuex 模块中进行继承的方法