uniapp(三) 之 表单提交

news2024/11/24 19:58:04

更换UI库

经过我昨天仔细看了下ThorUI,里面有个会员组件,好像有用的组件都是会员组件一样,作为一个白嫖怪,我决定今天再换一个UI库

 

引入后,根据组件位置自行调整位置

 好了现在使用UNI-UI了

但是我的语法是vue3,官网范例需要被改一改,this也没有了,完整代码如下

<template>
	<view class="login-bg">
		<view class="login-title">
			<view>登录</view>
		</view>
		<view class="login-form">
			<uni-forms :modelValue="formData" :rules="loginRules" ref="loginform">
				<uni-forms-item  name="name">
					<input type="text" v-model="formData.name" placeholder="请输入您的手机号" />
				</uni-forms-item>
				<uni-forms-item  name="password" >
					<input type="password" v-model="formData.password" placeholder="请输入密码" />
				</uni-forms-item>
			</uni-forms>
			<button @click="submit">立即登录</button>
		</view>
	</view>
</template>

<script lang="ts" setup>
	import { ref ,reactive} from 'vue';
	interface loginForm {
		name : string,
		password : string
	}
	const formData = ref<loginForm>({
		name: '',
		password: ''
	});
	const loginRules = reactive({
		name: {
			rules: [{
				required: true,
				errorMessage: '请填写手机号',
				
			}, {
				minLength: 11,
				maxLength: 11,
				errorMessage: '长度在 {maxLength} 个字符',
			}]
		},
		password: {
			rules: [
				{
					required: true,
					errorMessage: '请输入密码'
				}
			]
		}
	})
	const loginform = ref(null);
	const submit = () => {
		loginform.value.validate().then(res=>{
				console.log('表单数据信息:', res);
			}).catch(err =>{
				console.log('表单错误信息:', err);
			})
	}
</script>

<style>
</style>

无论校验还是数值都需要被双向绑定,通过ref取得表单对象

uni-app官网

这里面有一些注意事项

  • uni-forms 1.4.0 版本 发布,请注意文档中兼容问题说明
  • uni-forms 1.4.0 版本后,binddata 方法不在推荐,请使用 uni-forms-item 上的 onFieldChange 方法代替
  • 表单校验时机【1.4.0 已废弃】validateTrigger
  • 在小程序中,json 中不能使用正则对象,使用正则对象会被微信序列化,导致正则失效。建议统一使用字符串的方式来使用正则 ,如'^\\S+?@\\S+?\\.\\S+?$' ,需要注意 \ 需要使用 \\ 来转译。
  • 需要注意,如果需要使用 validateFunction 自定义校验规则,则不能采用 uni-forms 的 rules 属性来配置校验规则,这时候需要通过ref,在onReady生命周期调用组件的setRules方法绑定验证规则
  • 无法通过props传递变量,是因为微信小程序会过滤掉对象中的方法,导致自定义验证规则无效。
  • 如果使用了 validateFunction 且 required 为 false的情况,表现为不填写内容不校验,有内容才校验,所以内容为空时 validateFunction 不会执行

当然替换this的方法不止这样

这个也可以了解一下

import {  getCurrentInstance } from 'vue';

const { proxy } = getCurrentInstance();

现在我的表单输出完成了,剩下接口 对接了 

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

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

相关文章

Hadoop数据仓库的主要特征有哪些?

数据仓库(英语&#xff1a;Data Warehouse&#xff0c;简称数仓、DW),是一个用于存储、分析、报告的数据系统。数据仓库的目的是构建面向分析的集成化数据环境&#xff0c;分析结果为企业提供决策支持(Decision Support)。 数据仓库本身并不“生产”任何数据&#xff0c;其数据…

Nebula分布式集群

2022年9月15日18:47:38文章目录 Nebula1.安装:2.数据模型3.NebulaGraph 架构总览4.基本命令文档4.0 数据类型4.1 spaces图空间CREATE SPACEDROP SPACECLEAR SPACESHOW SPACESDESC SPACE 4.2 Tag4.3 edge4.4 点语句INSERT VERTEXDELETE VERTEXUPDATE VERTEXUPSERT VERTEX 4.5 边…

day11 -- 存储过程+触发器+事物处理

学习内容 什么是存储过程 如何使用存储过程 学习记录 存储过程 经常会有一个完整的操作需要多条语句才能完成。 此外&#xff0c;需要执行的具体语句及其次序也不是固定的&#xff0c;它们可能会根据条件而选择性的执行。 那应该怎么办呢&#xff1f;可以创建存储过程。 存储…

工业镜头分类、相关参数含义

一、工业镜头参数 1、焦距/后焦距 焦距是像方主面到像方焦点的距离。后焦距指光线离开镜头最后一片镜片表面到sensor感光面的距离&#xff0c;如8mm&#xff0c;16mm&#xff0c;25mm等&#xff1b; 焦距的大小决定着视角大小&#xff0c;焦距数值小&#xff0c;视角大&#…

4个月完成职位申请并CSC改派出国|新加坡南洋理工大学访学申请记

由于原访学国家签证被拒&#xff0c;O老师期望能申请手续便捷且容易通过签证的国家&#xff0c;最终我们成功申请到世界名校新加坡南洋理工大学的国家教育研究学院。从获得邀请函、办理CSC改派及派出、顺利签证直至出国等全套手续&#xff0c;仅仅4个月。 O老师背景&#xff1a…

腾讯应用宝 - 微下载

首次接触微下载这个概念&#xff0c;故简单记录一下 产品&#xff1a;微下载配置好了吗&#xff1f; Me&#xff1a; 嗯&#xff1f;什么微下载&#xff1f; 基础认知微下载是什么&#xff1f;微下载在哪里使用&#xff1f;微下载链接获取方式&#xff1f;个性化功能&#xff…

搜索引擎召回策略总结

一、搜索引擎召回策略的方法和注意事项(自己能想到的&待补充) 二、相关资料 同义变换在百度搜索广告中的应用 https://mp.weixin.qq.com/s/ybkbU8p_3jgKuCGdNWeG8w 2020年kdd Facebook搜索向量召回读后感【小红书MXie】 https://zhuanlan.zhihu.com/p/184920498 美团搜…

一键安装 HomebrewCN

一键安装 HomebrewCN Brew介绍Homebrew 能干什么?Homebrew自身如何使用安装Homebrew国内源安装 Homebrew(github源) Brew介绍 macOS 和 Linux 缺失软件包的管理器 Homebrew 能干什么? 使用 Homebrew 安装 Mac&#xff08;或Linux&#xff09;没有预装但你需要的东西。 Ho…

python 第三章 基础语句

系列文章目录 第一章 初识python 第二章 变量 文章目录 3.1 输出格式化输出格式化符号格式化字符串扩展f-格式化字符串转义字符结束符 3.2 输入3.3 数据类型转换转换数据类型的函数 3.4 PyCharm交互式开发3.5 运算符运算符的分类算数运算符赋值运算符复合赋值运算符比较运算符逻…

java设计模式之:工厂模式详解(简单工厂+工厂方法+抽象工厂)

文章目录 简单工厂实现应用场景 工厂方法实现适用场景缺点 抽象工厂实现缺点 在面向对象编程中&#xff0c;创建对象实例最常用的方式就是通过 new 操作符构造一个对象实例&#xff0c;但在某些情况下&#xff0c;new 操作符直接生成对象会存在一些问题。举例来说&#xff0c;对…

软件测试2023年行情怎么样?仔细讲解!

目录 前言&#xff1a; 普通功能测试人员不建议跳槽 还有一个要求就是要对业务的极致理解 那么产业互联网趋势会导致什么呢&#xff1f; 现在跳槽涨薪需要掌握到什么样的技术呢&#xff1f; 给大家一些跳槽建议 前言&#xff1a; 软件测试是为了发现程序中的错误而执行程序的…

Keil5新建工程

STM32新建工程 1、基于寄存器、基于库函数、基于HAL2、基于标准库的工程3、工程架构4、基于库函数点灯实验 1、基于寄存器、基于库函数、基于HAL 1、基于寄存器&#xff1a;与51单片机开发案方式一样&#xff0c;是用程序直接配置寄存器&#xff0c;来达到我们想要的功能&…

基于NE555芯片的简单延时电路和方波信号发生器

简单延时电路 NE555芯片是一种经典的计时器集成电路&#xff0c;常用于电子设计中的定时和延时功能。下面是一个简单的NE555延时电路的详细分析和讲解&#xff1a; NE555芯片是一个多功能的集成电路&#xff0c;主要由比较器、RS触发器、RS锁存器以及输出驱动器等组成。它可以工…

CLIP对比语言-图像预训练算法

本文参考&#xff1a;AIGC神器CLIP&#xff1a;技术详解及应用示例_Baihai IDP的博客-CSDN博客 一、CLIP概述 CLIP&#xff1a;Constastive Language-Image Pretraining。它是一个开源的、多模式的、zero-shot的模型。如果提供一张图像和一段文本描述&#xff0c;该模型可以预…

requestAnimationFrame() 方法

[TOC](requestAnimationFrame() 方法) 一、基本使用 1.基本介绍 window.requestAnimationFrame() 主要是用来实现动画的时候使用的&#xff0c;不管是移动动画还是数字增长动画&#xff0c;使用这个api可以让你的动画看起来非常平滑&#xff0c;因为它是要求浏览器在下次重绘…

【C++ 基础篇:22】:类的 const 对象 与 const 成员函数/方法 以及 类中涉及 const 的常见问题!

本系列 C 相关文章 仅为笔者学习笔记记录&#xff0c;用自己的理解记录学习&#xff01;C 学习系列将分为三个阶段&#xff1a;基础篇、STL 篇、高阶数据结构与算法篇&#xff0c;相关重点内容如下&#xff1a; 基础篇&#xff1a;类与对象&#xff08;涉及C的三大特性等&#…

基于html+css的图展示111

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

软件测试基础教程学习2

文章目录 软件测试基础2.1 软件测试模型2.2 确认和验证2.3 软件测试分类2.4软件测试流程概述 软件测试基础 2.1 软件测试模型 2.2 确认和验证 软件确认&#xff08;Validation&#xff09;和验证&#xff08;Verification&#xff09;&#xff0c;简称V&V或V2。 确认是指…

python基于yolov7开发构建手写甲骨文检测识别系统

在我之前的文章中&#xff0c;关于手写文字、手写数字、手写字母的检测识别相关的项目都有了不少的实践了&#xff0c;这里就不在赘述了&#xff0c;感兴趣的话可以自行移步阅读即可。 《基于轻量级目标检测模型实现手写汉字检测识别计数》 《python开发构建基于机器学习模型…

Nginx+Tomcat(多实例)实现动静分离和负载均衡四层、七层(总有些惊奇的际遇,比方说当我遇见你)

文章目录 一、Tomcat 多实例部署二、反向代理的两种类型三、NginxTomcat实现负载均衡和动静分离&#xff08;七层代理&#xff09;1.动静分离和负载均衡原理2.实现方法3.部署实例&#xff08;1&#xff09;部署Nginx负载均衡服务器&#xff08;2&#xff09;配置Tomcat多实例服…