vue3+vant4父组件点击提交并校验子组件form表单

news2024/12/25 23:53:06

先看效果

代码如下

父组件

<template>
  <ChildForm ref="childFormRef" />
  <button @click="validateForm">校验表单</button>
</template>
<script setup>
import { ref } from 'vue';
import ChildForm from './ChildForm.vue';
const childFormRef = ref(null);
const validateForm = async () => {
  if (childFormRef.value) {
    try {
      const isValid = await childFormRef.value.validate();
      console.log('Form valid:', isValid);
    } catch (error) {
      console.error('Validation error:', error);
    }
  }
};
</script>

子组件

<!-- ChildForm.vue -->
<template>
    <van-form ref="formRef">
      <!-- 表单项 -->
      <van-field label="账号" name="账号" v-model="pageList.fieldValue" :rules="rules" />
      <van-field
      v-model="pageList.password"
      label="密码"
      name="密码"
      type="password"
      placeholder="请输入密码"
      :rules="[{ required: true, message: '请输入密码' }]"
    />
    </van-form>
  </template>
  <script setup>
  import { ref, defineExpose } from 'vue';
  const formRef = ref(null);
  let pageList = ref({
    fieldValue:'',
    password:'',
  })
  const rules = ref([
    { required: true, message: 'This field is required' }
  ]);
  
  const validate = async () => {
    if (formRef.value) {
      try {
        await formRef.value.validate();
        return true;
      } catch (error) {
        return false;
      }
    }
    return false;
  };
  defineExpose({ validate });
  </script>
  

父组件通过ref获取子组件的引用,在父组件的点击事件中调用子组件的validate方法进行表单验证,如果验证通过则执行提交逻辑。子组件通过defineExpose暴露其validate方法给父组件使用。这样父组件就可以通过childForm.value.validate调用子组件的验证方法了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2098491.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Python系列】异步任务的终止

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

如何在S7-200 SMART CPU断电后保持高速计数器的当前值

1、首先是问题描述 S7-200 SMART的断电数据保持不支持高速计数器的范围设置&#xff0c;因此高速计数器的当前值在CPU每次断电后都会复位为数值0。要使S7-200 SMART高速计数器的当前值在CPU断电重启后依然保持&#xff0c;可以通过以下的编程来实现。 在此以通过向导生成高速…

MapStruct-Java实体转换利器

MapStruct-Java实体转换利器 MapStruct 概述MapStruct 使用例子UserDTOUserEntityUserDTOConverter ( mapstruct 接口)UserModelConverterImpl &#xff08;自动生成&#xff09;Service 层使用 MapStruct 概述 MapStruct 是一个用于生成映射器接口的代码生成库&#xff0c;主…

哪款宠物空气净化器性价比高,希喂、霍尼韦尔真实测评分享

几年前养宠物就帮我开启了一个全新的体验。下班回去后能看到它在门口处摇着尾巴&#xff0c;眨巴着个大眼的等我回家&#xff1b;每天醒来就看到它在我的身边安安静静的躺着&#xff0c;实在是一幅岁月静好的画面。但如果没有浮毛和异味困扰的话&#xff0c;我相信会更好。 随…

ChatTTS文本转语音本地Windows环境部署与远程生成AI音频实战流程

文章目录 前言1. 下载运行ChatTTS模型2. 安装Cpolar工具3. 实现公网访问4. 配置ChatTTS固定公网地址 前言 本篇文章主要介绍如何快速地在Windows系统电脑中本地部署ChatTTS开源文本转语音项目&#xff0c;并且我们还可以结合Cpolar内网穿透工具创建公网地址&#xff0c;随时随…

【BLE】四.SMP安全配对详解

设备配对流程 SMP专业术语 Paring&#xff08;配对&#xff09;&#xff1a; 配对能力交换&#xff0c;设备认证&#xff0c;密钥生成&#xff0c;连接加密以及机密信息分发等 过程 Bonding&#xff08;绑定&#xff09; 配对中会生成一个长期密钥&#xff08;LTK&#xff0c;…

022集—— 字符串按ascii码转数字——C#学习笔记

字符串分解为字符&#xff0c;字符分别转为ascii对应数字&#xff0c;最后数字连接起来转为字符串&#xff0c;具体如下&#xff1a; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace Console…

【Next】3. 开发规范

笔记来源&#xff1a;编程导航 1、约定式路由 Next.js 使用 约定式路由&#xff0c;根据文件夹的结构和名称&#xff0c;自动将对应的 URL 地址映射到页面文件。 常见的几种路由规则如下&#xff1a; 1&#xff09;基础规则&#xff1a;以 app 目录作为根路径&#xff0c;根…

mybatis-plus添加replace(自定义)方法,添加sql注入器SqlInjector

1. 继承DefaultSqlInjector import com.baomidou.mybatisplus.core.injector.AbstractMethod; import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector; import com.baomidou.mybatisplus.core.metadata.TableInfo; import org.springframework.stereotype.Compon…

网络安全宣传周知识竞赛答题小程序怎么做?

随着网络安全宣传周的到来&#xff0c;越来越多的单位开始组织员工进行线上学习网络安全相关知识&#xff0c;其中举办网络安全知识竞赛答题活动的效果尤为明显&#xff0c;以下是一些网络安全答题系统的功能亮点&#xff1a; 多样化的题目类型与灵活的出题方式&#xff1a; 丰…

92.游戏的启动与多开-多开检测概述

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a;易道云信息技术研究院 上一个内容&#xff1a;91.游戏的启动与多开-游戏启动 正常来说任何一个软件一双击就会打开&#xff0c;只要软…

一文读懂PINGPONG:0成本在普通家用机上运行多个网络节点

概述 l pingpong项目设计的愿景便是降低去中心化网络的节点运行难度&#xff0c;让普通人也可以参与到节点运行中&#xff1b; l 这个周期里&#xff0c;随着Depin和AIWeb3叙事的爆发&#xff0c;众多中小型去中心化网络面临着节点运行者供需不匹配的问题&#xff0c;严重影响…

MySQL约束与事务

一、MySQL约束 参考【MySQL】约束_mysql约束-CSDN博客 not null&#xff1a;非空约束unique&#xff1a;唯一性约束primary key&#xff1a;主键约束foreign key&#xff1a;外键约束check&#xff1a;检查约束default&#xff1a;默认值约束 如何添加约束 在CREATE TABLE时…

zyx青岛实训day34 初步了解Docker与套接字的应用

回顾 1、主从复制&#xff08;高可用&#xff09; 2、传统的主从复制 3、gtids事务型的主从复制 4、注意 1&#xff09;server_id唯一 2&#xff09;8.X版本需要get_ssl_pub_key 3&#xff09;5.X不需要 4&#xff09;change master to 5&#xff09;stop | start slave 5…

YOLOv5调用海康工业相机实时检测

目录 一、调用海康工业摄像头 1.1 DirectShow插件安装 1.2 查找摄像头编号 1.3 摄像头调用测试 二、修改YOLOv5相关参数 2.1 detect.py修改 2.2 datasets.py修改 一、调用海康工业摄像头 现在可直接利用cv2.VideoCapture()接口调用海康机器人工业相机&#xff0c;首先在官…

【数据结构】二叉搜索树的功能实现详解

文章目录 二叉搜索树查找插入删除找到要删除的节点删除节点1. 要删除节点的左孩子为空2. 要删除节点的右孩子为空3. 要删除的节点的左右孩子都不为空 完整代码 二叉搜索树 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&#xff0c;或者是具有以下性质的二叉树: 若它…

IOS17双开微信且自动刷新

前提文件 需要在Sideloadly官网下载iTunes和iCloud这2个文件&#xff1a;https://sideloadly.io/&#xff0c; SideStore侧载商店官网下载另外4个文件&#xff1a;https://sidestore.io/ 如图&#xff0c;如果文件无法下载(需要科学上网)可以下载我的资源包尝试 安装步骤 …

C语言学习笔记 Day15(文件管理--下)

Day15 内容梳理&#xff1a; 目录 C语言学习笔记 Day14&#xff08;文件管理--上&#xff09;-CSDN博客 Chapter 10 文件操作 10.2 文件加密、解密 &#xff08;1&#xff09;文件加密 &#xff08;2&#xff09;文件解密 10.3 文件读取、写入 &#xff08;1&#xff…

可视化数据大屏设计案例

可视化数据大屏开发-能源调度大屏展示 可视化数据大屏开发-房地产经营分析 可视化大屏开发-预售业务数据看板 可视化大屏开发-城市路况监测大屏