我的编程空间,编程开发者的网络收藏夹
学习永远不晚

《uni-app》表单组件-form表单

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

《uni-app》表单组件-form表单

在这里插入图片描述

本文分享的Form组件为uni-app的内置组件Form,非扩展组件,两者在用法上其实大同小异,只是扩展组件的属性以及事件更多…没有本质上的区别~

一. 简介

From表单组件,具有数据收集、提交数据的功能,某种程度上说它就是一个 容器,这个容器内部可以有 inputcheckboxradiopicker 等组件填充,原则上所有的表单组件都必须置入from组件,再通过form组件收集内部组件数据并将内容通过接口发送至后台接收~
通过描述我们可以看出form表单在业务场景中 主要承担的职责 是一个 信息录入 的职能,换句话说,所有信息录入的功能都可以考虑使用form表单来实现,如注册,账号找回,个人信息填写,问卷调查等等~

二. 基础用法

基础用法如下:

form和绝大多数标签一样是 双标签 的,也就是说它具有闭合标签,因此书写标签时不可遗漏闭合标签,如下这种即是 错误示例

但这个只是容器,实际开发中不可能会这么使用,毕竟不会有哪个业务场景只有一个壳,而壳里面啥内容都没有,常规示例代码如下:

                          

示例代码中form组件作为容器,内部具有input输入框以及radio单选框存在,其表现形态 效果图 如下:
在这里插入图片描述

三. @submit事件

@submit事件,触发后用于 收集内部组件信息,事件说明如下:

属性名类型说明平台差异说明
@submitEventHandle携带 form 中的数据触发 submit 事件,event.detail = {value : {‘name’: ‘value’} , formId: ‘’},report-submit 为 true 时才会返回 formId

示例代码如下:

将from组件绑定 @submit 事件,其值对应一个函数,再通过将 buttonform-type 设置成 submit 即可实现点击按钮时 联动触发form表单的submit事件,其表现形态 效果图 如下:
在这里插入图片描述

其实,到这里还没有完成,当我们按照说明去使用的时候,发现e.detail中并没有如期望的那般获取到对应的值,具体内容如下图
在这里插入图片描述

detail中并没有如说明中存在的对应的值,原因是因为form内部的组件必须加上 name属性,示例代码如下:

inputradio 都加上 name属性,加上后其结果如下:
在这里插入图片描述

如说明所说,正常获取到预期的值了;

四. @reset事件

@reset事件,触发后用于 重制内部组件的值,换句话说,相当于把内部组件的值都给清空掉,事件说明如下:

属性名类型说明平台差异说明
@resetEventHandle表单重置时会触发 reset 事件

用法和submit基本类似,示例代码如下:

其表现形态 效果图 如下:
在这里插入图片描述

同时,@reset对应的事件会在组件的值被清空时同时触发,如现在有一个reset事件,触发时同时弹出弹窗,示例代码如下:

其表现形态 效果图 如下:
在这里插入图片描述

五. report-submit属性与report-submit-timeout属性

report-submit属性report-submit-timeout属性,这是一对 应用于微信小程序中模板消息的属性,属性说明如下:

属性名类型说明平台差异说明
report-submitBoolean是否返回 formId 用于发送模板消息(opens new window)微信小程序、支付宝小程序
report-submit-timeoutnumber等待一段时间(毫秒数)以确认 formId 是否生效。如果未指定这个参数,formId 有很小的概率是无效的(如遇到网络失败的情况)。指定这个参数将可以检测 formId 是否有效,以这个参数的时间作为这项检测的超时时间。如果失败,将返回 requestFormId:fail 开头的 formId微信小程序2.6.2

简单的说,通过页面的 form 组件,属性 report-submittrue 时,可以声明为需要发送模板消息,此时点击 按钮提交表单 可以获取 formId,用于发送模板消息。
示例代码如下

值得注意的是,模板消息功能微信小程序中已经不再支持了…对的,你没看错,转而支持的是 订阅消息模板,有兴趣的小伙伴可以仔细到小程序官网查看

六. 注意事项

6.1 校验功能

uni-app内置的form表单组件是不带验证功能的,很多UI库的form表单组件都提供表单验证功能,通过设置一定的规则校验内部组件,可能有小伙伴不知道什么是验证功能,这里简单的说一下吧,以element为例:

        

通过设置 rules 可以给组件绑定一些验证规则,如上例中的规则就是存在两个,分别是:

  • 输入框不可为空,触发方式为失去焦点时触发;
  • 输入框内容最短长度时3个字符,最长长度为5个字符,触发方式为失去焦点时触发;

很明显,有规则校验的form表单更符合实际的应用场景,但很遗憾,内置组件并没有,有需求可以使用类似于 uView组件库 或者到 插件商城 自行查找对应组件~

七. demo示例演示

7.1 场景说明

本节以form表单组件结合一个 问卷调查形态的form表单,表单内部有以下组件:

  • 姓名,输入框组件
  • 性别,单选框组件
  • 爱好,复选框组件
  • 自我评价,多行输入框组件

接着通过 按钮 获取到这些输入框中对应的值,并打印显示到页面~
(PS:对于input,textarea等各个组件的用法可以参照Form表单系列中的对应组件说明~)

7.2 demo实现代码

其表现形态 效果图 如下:
在这里插入图片描述

八. 小结

如果说 input,radio,checkbox等组件是表单组件的房屋建造中的砖瓦,那么form组件就是这个房子的钢筋水泥的结构骨架,只有在这个结构骨架里才能为这个房子添砖加瓦;
在实际的业务场景中,表单的使用频率是非常高的无论是移动端还是PC端都离不开表单,毕竟任何一个应用都会存在一些信息录入的功能~

来源地址:https://blog.csdn.net/zy21131437/article/details/126981664

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

《uni-app》表单组件-form表单

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

《uni-app》表单组件-form表单

本文分享的Form组件为uni-app的内置组件Form,非扩展组件,两者在用法上其实大同小异,只是扩展组件的属性以及事件更多…没有本质上的区别~ 《uni-app》表单组件-form表单 一. 简介二. 基础用法三. @s
2023-08-16

Vue3ElementPlusel-form表单组件示例详解

这篇文章主要介绍了Vue3ElementPlusel-form表单组件,ElementPlus是ElementUI的升级版,提供了更多的表单控件和功能,同时还改进了一些细节和样式,本文结合示例代码给大家详细讲解,需要的朋友可以参考下
2023-05-17

Django form表单

Form介绍 总结一下,其实Django form组件的主要功能如下:生成页面可用的HTML标签对用户提交的数据进行校验保留上次输入内容form表单的作用:  1.生成HTML代码  2.验证  3.把验证的错误显示在页面上并保留原始数据f
2023-01-30

关于uniapp的高级表单组件mosowe-form

这篇文章主要介绍了关于uniapp的高级表单组件mosowe-form,由于一些表单标签改来改去比较繁琐,重复性很多,且样式布局啥的几乎万变不离其中,为了偷懒,开发了mosowe-form及mosowe-table两款高级组件,需要的朋友可以参考下
2023-05-17

Django 提交 form 表单

创建 Django 的过程可以参考上一篇文章 https://www.cnblogs.com/klvchen/p/10601536.html在 templates 文件夹下创建一个 index.html 文件来提交和展示数据
2023-01-31

Vue3 Element Plus el-form表单组件怎么使用

在ElementPlus中,el-form是一个表单组件,用于创建表单以便用户填写和提交数据。它提供了许多内置的验证规则和验证方法,使表单验证更加容易。使用el-form组件,您可以将表单控件组织在一起,并对表单进行验证,以确保提交的数据符合预期的格式和要求。该组件具有以下特性:支持内置的验证规则和自定义验证函数。可以通过设置model属性将表单数据绑定到表单组件上。支持表单验证前和验证后的回调函数。提供了一些常见的表单控件,如输入框、下拉框、单选框、复选框等。在功能和用法上,el-form组件
2023-05-14

antd form表单中怎么嵌套自定义组件

本篇内容主要讲解“antd form表单中怎么嵌套自定义组件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“antd form表单中怎么嵌套自定义组件”吧!表单部分
2023-07-05

微信小程序表单组件form怎么使用

这篇“微信小程序表单组件form怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“微信小程序表单组件form怎么使用”文
2023-06-26

Vue3 Element Plus中el-form表单组件如何使用

这篇文章主要讲解了“Vue3 Element Plus中el-form表单组件如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue3 Element Plus中el-form表单组件
2023-07-06

Flutter Form表单控件超全总结

注意:无特殊说明,Flutter版本及Dart版本如下:Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0Form、FormField、TextFormField是表单相关控件,类似于H5中form。Form
2023-06-04

Form表单, 4种常见的表单提交方式

常见的表单提交方式有以下四种:1. GET方式:表单数据会附加在URL的后面,以键值对的形式出现,例如:http://example.com?name=John&age=25。这种方式适合传输少量的非敏感数据,例如搜索表单等。2. POST
2023-09-14

Django 提交 form 表单(使用

优化 提交 form 表单,https://www.cnblogs.com/klvchen/p/10608143.html创建数据库的字段,在 models.py 中添加from django.db import models# Creat
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录