HarmonyOS 实现表单页面的输入,必填校验和提交

一. 样例介绍

本篇 Codelab 基于 input 组件、label 组件和 dialog 组件,实现表单页面的输入、必填校验和提交:

1.  为 input 组件设置不同类型(如:text,email,date 等),完成表单页面。

2.  对表单页面中的用户名、电子邮件、爱好输入框进行必填校验。

3.  使用弹框选择性别、爱好。

相关概念

● input组件:交互式组件,包括单选框,多选框,按钮和单行文本输入框。

● label组件:为 input、button、textarea 组件定义相应的标注,点击该标注时会触发绑定组件的点击效果。

● dialog组件:自定义弹窗容器。

完整示例

gitee源码地址

二. 环境搭建

我们首先需要完成 HarmonyOS 开发环境搭建,可参照如下步骤进行。

软件要求

● DevEco Studio版本:DevEco Studio 3.1 Release 及以上版本。

● HarmonyOS SDK版本:API version 9 及以上版本。

硬件要求

● 设备类型:华为手机或运行在 DevEco Studio 上的华为手机设备模拟器。

● HarmonyOS 系统:3.1.0 Developer Release 及以上版本。

环境搭建

1.  安装 DevEco Studio,详情请参考下载和安装软件

2.  设置 DevEco Studio 开发环境,DevEco Studio 开发环境需要依赖于网络环境,需要连接上网络才能确保工具的正常使用,可以根据如下两种情况来配置开发环境:

● 如果可以直接访问 Internet,只需进行下载HarmonyOS SDK操作。

● 如果网络不能直接访问 Internet,需要通过代理服务器才可以访问,请参考配置开发环境

1.  开发者可以参考以下链接,完成设备调试的相关配置:

● 使用真机进行调试

● 使用模拟器进行调试

三.代码结构解读

本篇 Codelab 只对核心代码进行讲解,对于完整代码,我们会在源码下载或 gitee 中提供。

├──entry/src/main/js                          // 代码区│  └──MainAbility   │     ├──common│     │  ├──constant│     │  │  └──commonConstants.js             // 公共常量│     │  └──images                            // 图片资源目录│     ├──i18n│     │  ├──en-US.json	                      // 英文国际化│     │  └──zh-CN.json	                      // 中文国际化│     ├──pages│     │  └──index│     │     ├──index.css                      // 表
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在循环生成的表单中,如果每个元素都需要进行必填校验,你可以通过数据驱动的方式来实现。首先,在你的Vue实例的数据中,你可以创建一个数组来存储每个输入元素的状态,比如是否已填写。然后,将这个状态数组绑定到HTML模板中的每个输入元素。 假设我们有如下数据模型: ```javascript data() { return { items: [ { name: '', isFilled: false }, // 第一个元素 { name: '', isFilled: false }, // 第二个元素 ... // 其他元素 ] } } ``` 在模板中,你可以这样显示每个输入并进行必填校验: ```html <template v-for="(item, index) in items"> <el-form-item :label="'姓名 ' + (index + 1)"> <el-input v-model="item.name" :disabled="!item.isFilled"></el-input> <span class="required" v-if="!item.isFilled">必填</span> <button @click="setFilled(index)">设置必填</button> </el-form-item> </template> ``` 当你点击“设置必填”按钮时,可以调用`setFilled`方法去改变对应元素的`isFilled`状态: ```javascript methods: { setFilled(index) { this.items[index].isFilled = true; // 设置必填标志为true // 如果需要,还可以在此处添加必填校验,例如: this.$refs.form.validateFields(() => { if (!this.items[index].name) { console.error('第' + (index + 1) + '个姓名不能为空'); } }); } } ``` 这样,每当某个输入元素变为非空,其`isFilled`状态就会变为`true`,并且输入框会被锁定。如果用户尝试提交表单时,`validateFields`会检查每个必填项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HarmonyOS开发者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值