ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

从需求到页面:HarmonyOS表单实战的 ArkTS 原生实现

从需求到页面:HarmonyOS表单实战的 ArkTS 原生实现 HarmonyOS ArkUI 表单交互实战从输入校验到提交反馈表单是移动应用里最常见、也最容易被低估的一类页面。它看起来只是几行输入框、几个按钮和一条提示文字但真正影响使用体验的往往不是控件数量而是输入过程是否顺手、状态是否清楚、错误是否能被及时发现以及重置和提交之后页面能不能给出明确反馈。这篇文章围绕一个简单而完整的移动表单页面展开。页面顶部显示“表单实践”下面依次放置姓名、手机号码、密码三个输入区域再提供性别选择、年龄调整、用户协议勾选、状态提示以及重置和提交两个操作。它没有接入服务器也没有真正创建用户账号提交动作只负责检查当前页面里的输入状态并把结果显示在提示区域中。正因为范围足够明确这个页面很适合用来理解 ArkUI 中“状态变化驱动界面更新”的基本思路。一、先从用户看到的页面开始打开页面后顶部是一条蓝色标题栏标题文字为“表单实践”。标题栏占据整行宽度文字使用较大的字号和较醒目的粗体白色文字与蓝色背景形成明显对比。下方是浅灰色页面背景表单内容以纵向方式排列在可滚动区域里。表单区域里的每个输入框都使用白色背景和圆角边缘与浅灰色背景区分开来。姓名输入框的占位文字是“请输入姓名”手机输入框的占位文字是“请输入手机号码”密码输入框的占位文字是“请输入密码”。三个输入框高度一致排列间距也比较接近因此用户能很快理解它们属于同一组资料填写内容。输入框下面是性别选择区域。区域标题为“性别”下方有“男”“女”“保密”三个按钮。初始状态下“保密”是当前选择因为页面打开时使用的是第三个选项。选中按钮采用蓝色背景和白色文字未选按钮使用浅色背景和深灰色文字。点击其中任意一个选项后颜色会立即变化新的选项变成蓝色其他选项恢复为浅色。性别区域下面是年龄调整行。页面初始年龄为 28左侧显示“年龄28”右侧有减号和加号两个小按钮。年龄文字会随着按钮操作同步更新。减号可以把年龄减小但页面限制年龄不能低于 1加号没有设置上限点击一次就增加 1。因此这个页面既展示了普通文本输入也展示了由按钮驱动的数值状态变化。年龄区域下面是协议勾选行。左侧是复选框右侧文字为“我已阅读并同意用户协议”。复选框打开时表示同意关闭时表示未同意。提交校验会使用这个勾选状态如果用户没有勾选协议即使姓名、手机号和密码都填写正确提交结果仍然会显示校验错误。协议行下面是一条浅蓝色提示卡片。初始提示是“填写信息点击提交体验表单校验”。它不是静态说明而是页面反馈的一部分。点击重置时提示变成“表单已重置”提交条件满足时提示变成“✓ 校验通过表单已提交”条件不满足时提示变成“存在校验错误请检查后重试”。用户无需离开当前页面就能知道最后一次主要操作产生了什么结果。页面底部是两个并排按钮左侧是浅色的“重置”右侧是蓝色的“提交”。两个按钮各占一半左右的宽度中间留有间距。这样的排列让两个操作保持在同一视觉层级但通过颜色区分了次要操作和主要操作。二、这个表单真正保存了哪些状态页面的每一处可交互内容都对应一个能够被界面读取和修改的状态。姓名、手机号和密码属于文本状态性别属于选项状态年龄属于数值状态协议属于布尔状态提示文字属于反馈状态。它们共同决定页面此刻显示的内容。姓名状态的初始值为空字符串。页面刚打开时姓名框只显示占位文字用户输入第一个字符后占位文字消失输入内容出现在输入框中。之后每一次增删字符页面都会保存最新的文本。这里没有额外的姓名格式限制提交时只检查姓名长度是否大于 0也就是说输入任意非空内容都能通过姓名这一项。手机号状态同样从空字符串开始但输入框使用了手机号类型。这个类型会帮助系统以更适合数字电话输入的方式呈现输入体验。不过页面提交判断并没有做完整的号码格式识别也没有检查区号、运营商号段或验证码。它只检查手机号字符串长度是否至少为 11。长度不足时提交会失败长度达到 11 位或更多时手机号这一项就被视为满足页面自己的演示条件。密码状态也是空字符串。输入框设置为密码类型输入内容会以密码形式显示避免直接展示完整字符。页面没有显示密码强度条也没有确认密码输入框。提交判断只检查密码长度是否至少为 6 位未达到 6 位就会失败。达到 6 位后页面认为密码这一项符合当前演示规则但并没有对大小写、数字组合或特殊字符做进一步判断。性别状态使用三个位置来表示三个按钮。第一个位置对应“男”第二个位置对应“女”第三个位置对应“保密”。初始位置是第三项。点击按钮时页面只需要更新当前选中的位置三个按钮的背景色和文字颜色就会根据“是否等于当前选中位置”重新显示。这个做法适合选项数量固定、互斥关系清晰的场景。年龄状态初始值为 28。减号按钮在年龄大于 1 时才允许继续减小这条判断保证页面不会显示 0 或负数。加号按钮直接执行加一操作没有额外上限。年龄变化时左侧文字会重新组合为“年龄”加上当前数值因此用户能马上看到按钮操作结果。协议状态初始为未勾选。用户点击复选框后状态在勾选和未勾选之间切换。协议文字本身没有点击事件只有复选框负责改变状态。这意味着用户必须准确点击复选框区域才能改变同意状态页面没有把整行都做成可点击区域。提示状态初始显示填写引导文字。它由重置和提交两个按钮修改。输入姓名、手机号、密码、性别、年龄或协议时提示文字不会自动改变只有点击重置或提交后才会更新。这一点很重要页面没有为每个输入框建立即时错误提示也没有在输入过程中逐字显示“格式正确”或“格式错误”。反馈集中发生在两个主要操作上。三、输入框的实际行为3.1 姓名输入姓名框的作用是收集一段非空文本。用户点击输入框后可以输入姓名也可以删除已经输入的内容。由于页面只在提交时判断姓名是否为空所以用户在填写过程中不会被打断。即使用户暂时只输入一个字符页面也不会弹出提示只有按下提交页面才会依据当前文本是否为空作出判断。这种处理适合简单演示页面因为规则直观操作成本低。但它也说明了实时校验和提交校验之间的区别实时校验需要在每次输入变化时给出反馈而当前页面把校验集中在提交时完成。对于真正的注册、预约或实名认证页面还可能需要更细致地检查空格、长度和字符范围当前页面没有实现这些规则不应把它描述成完整的姓名校验方案。3.2 手机号输入手机号框使用了专门的手机号输入类型用户在设备上操作时能够获得更贴近电话数字输入的键盘体验。这里的输入类型解决的是“怎么输入更方便”的问题而提交条件解决的是“当前文本是否达到最基本长度”的问题两者不是同一件事。页面把手机号长度至少 11 位作为通过条件。用户输入 10 位数字后点击提交提示会显示校验错误继续输入到 11 位再次点击提交手机号这一项就不再因为长度不足而导致失败。输入超过 11 位时页面也不会因为超长而单独报错因为当前判断只关注是否达到下限。从交互角度看手机号字段的提示文字和输入类型已经能够让用户理解填写方向但错误信息仍然是统一的“存在校验错误请检查后重试”没有指出具体是手机号还是其他字段不符合要求。因此当多个字段同时为空时用户需要结合页面逐项排查。3.3 密码输入密码框使用密码类型输入内容不会以普通文本形式直接呈现。这个视觉处理体现了敏感输入的基本习惯但页面没有提供显示或隐藏密码的按钮也没有密码强度提示和二次确认。提交时密码长度至少 6 位才会满足当前规则。输入 5 位密码后点击提交页面会显示错误输入第 6 位后再次点击提交密码条件就能通过。密码内容本身不会被显示到提示卡片里反馈只告诉用户校验整体是否成功。页面也没有把密码发送到网络没有保存到本地更没有执行加密或账号创建。四、性别选择与选中状态性别区域是一个典型的互斥选择。三个选项在同一行排列按钮宽度通过平均分配保持一致。用户点击“男”后男按钮立即变成蓝色女和保密保持浅色点击“女”后蓝色移动到女按钮点击“保密”后蓝色回到第三个按钮。这种反馈不依赖额外弹窗用户只通过颜色就能判断当前选择。蓝色背景和白色文字用于选中态浅蓝灰背景和深灰文字用于未选态。按钮文字始终保持不变变化只发生在颜色因此页面不会因为选项切换而改变整体布局。初始选中的“保密”并不代表用户已经完成了性别填写它只是页面打开时的默认值。提交判断也没有检查性别是否被用户主动修改页面只保留当前选项。即使用户从未点击性别区域也能在姓名、手机号、密码和协议满足条件时提交成功。这里可以看出性别属于展示和记录状态但不是当前提交校验的必需条件。如果用户先填写好其他内容再连续点击三个性别按钮页面只会保留最后一次点击对应的选项。不会出现多个选项同时呈现为选中的情况因为颜色判断始终围绕一个当前索引进行。重置后性别恢复到“保密”和初次打开页面时一致。五、年龄加减与边界年龄调整行采用文字加两个按钮的组合。文字占据主要空间两个按钮固定宽度保证操作区域稳定。点击加号后年龄从 28 变为 29再点击变为 30点击减号则按相反方向变化。减号操作带有下限保护。当年龄大于 1 时可以减一当年龄已经是 1 时再次点击减号不会继续变化。这个边界判断是页面中最明确的数值保护避免用户通过连续点击产生无意义的 0 或负数。加号没有上限判断所以理论上可以不断增加。这个行为符合演示页面的简单需求但不等同于真实业务中的年龄合法性校验。年龄变化不会更新提示文字也不会影响提交条件。无论年龄是 1、28 还是更大的数值只要其他四个提交判断条件满足页面就会显示校验通过。换句话说年龄控件主要用于演示数值状态、边界限制和界面刷新并不是这次提交校验的核心字段。六、用户协议勾选为什么会影响提交协议复选框是页面里唯一明确要求用户主动确认的条件。初始状态为未勾选提交时需要它变成勾选状态。这个设计让提交动作具备一个清晰的前置条件用户必须表达同意页面才会显示成功反馈。用户可以在任意时候勾选或取消勾选。如果先勾选再取消提交时仍然会失败如果先取消再勾选其他输入已经填写好的内容不会被清空提交时可以重新参与判断。协议状态与三个文本框相互独立切换复选框不会改变姓名、手机号和密码。页面显示的是“我已阅读并同意用户协议”这句文字但没有提供协议内容链接也没有打开详情页面的行为。它只演示了一个同意开关如何纳入提交判断不能被理解为已经完成法律文本展示、版本确认或用户协议存档。七、提交校验的完整条件点击提交按钮后页面会把当前状态放在一起判断。要看到成功反馈需要同时满足四个条件姓名不是空字符串手机号长度至少为 11密码长度至少为 6协议处于勾选状态。性别和年龄虽然会被页面保存并显示但不参与成功条件判断。如果任意一个条件不满足提示文字就会变为“存在校验错误请检查后重试”。页面不会告诉用户具体缺少哪一项也不会把输入框边框变成红色。用户需要根据三个占位提示、协议勾选状态和自己的输入内容进行检查。最简单的失败场景是页面打开后直接点击提交。此时姓名、手机号和密码都是空的协议也未勾选所以提示会立刻变成错误文字。此时性别显示“保密”年龄显示 28但它们不会帮助提交通过。第二种场景是只填写姓名。姓名条件满足了但手机号、密码和协议条件仍然不满足点击提交依旧失败。继续填写 11 位手机号但不填写密码仍然失败。再输入少于 6 位密码仍然失败。只有四个条件都满足之后提交按钮才会把提示修改为成功文字。成功文字中的“✓”是页面反馈的一部分用来和错误文字形成视觉区别。成功并不意味着数据已经被服务器接收也不意味着账号已经创建。它只表示当前页面的本地条件判断通过。八、重置操作会清除什么点击重置按钮后页面会把表单恢复到初始状态。姓名、手机号和密码被清空性别回到“保密”年龄回到 28协议取消勾选提示文字变为“表单已重置”。这些变化会同时出现在页面上用户可以直观看到原本填写的内容已经消失。重置不是返回上一页也不是重新加载整个应用。标题栏保持不变页面布局保持不变只有表单数据和提示状态恢复。用户重置后仍然可以重新填写也可以直接点击提交再次体验失败提示。如果用户在提交成功后点击重置成功提示会被“表单已重置”替换之前的输入不再保留。如果用户在提交失败后点击重置错误提示同样会被清除。重置按钮没有二次确认弹窗因此点击后会立即执行已经填写的内容无法通过页面恢复。九、几个容易忽略的交互组合表单页面的价值不只在于单个按钮能不能用更在于不同操作连续发生时状态是否一致。比如用户先填写姓名、手机号和密码再点击重置三个输入框应该都回到空状态而不是只清除其中一项。协议和年龄也应该同步恢复默认值否则页面就会出现“文字看起来已经重置但协议仍然勾选”的不一致。再比如用户先把年龄增加到 35再点击重置年龄应该回到 28用户选择“男”后再点击重置蓝色选中态应该回到“保密”。这些操作能够验证按钮事件是否覆盖了全部表单状态。还有一种组合是先提交失败再补齐信息后再次提交。第一次提交只改变提示文字不会清空已经填写的字段因此用户可以继续修正。补齐手机号、密码并勾选协议后再次点击提交提示会从错误变成成功。这种“失败后继续编辑”的流程比失败后自动清空更适合表单填写因为用户不需要重复输入已经正确的内容。如果用户提交成功后继续修改姓名页面不会自动把成功提示改成未提交也不会自动撤销成功状态。只有下一次点击提交页面才会根据新的状态重新判断。比如成功后删除姓名再次提交就会显示错误成功后改变年龄但保留其他条件重新提交仍然可以通过。提示文字因此表示“最近一次提交判断结果”而不是一个持续跟踪每次输入变化的实时状态。十、布局为什么使用滚动区域页面内容从标题栏一直延伸到两个底部按钮输入框、性别区域、年龄区域、协议区域和提示区域都需要占据一定高度。在较小屏幕上如果把所有内容直接放在固定高度容器里底部按钮可能被遮挡。滚动区域让用户可以上下移动内容保证每一块表单都能被访问。滚动区域内部采用纵向排列并在各模块之间设置统一间距。每个白色模块使用圆角和内边距输入框之间保持相似距离性别和年龄区域也以卡片方式呈现。这种布局有两个作用一是让页面结构清晰二是让用户知道哪些控件属于同一个功能区。滚动区域位于标题栏下方表单内容可以上下移动。这样用户向下查看年龄、协议和操作按钮时仍然能知道当前页面的用途。页面没有复杂导航、抽屉菜单或多页跳转所有操作都在同一个表单页面内完成。十一、颜色和文字反馈如何配合蓝色是页面的主要强调色用在顶部标题栏、选中性别按钮和提交按钮上。用户看到蓝色就能把它与当前页面的主要内容或当前选择联系起来。重置按钮使用浅色背景文字是深灰色表明它是辅助操作。输入框和内容卡片使用白色外部背景使用浅灰色。白色模块从背景中凸显出来使表单字段具备独立的视觉边界。提示区域使用浅蓝色背景和深灰色文字既不会像错误弹窗一样产生强烈警告也能让用户注意到它是状态说明。性别按钮的选中和未选颜色变化是最直观的即时反馈。年龄文字的数字变化是内容反馈。复选框的勾选状态是控件反馈。提交和重置后的提示文字是结果反馈。几种反馈互相补充使用户不必只依赖一种视觉信号。页面没有使用红色错误边框、震动、弹窗或 Toast。校验失败仅通过提示文字表达。因此如果设备屏幕较小或用户没有注意提示卡片就可能错过错误信息。对于这个演示页面来说单一文字反馈足够清楚如果用于重要业务还可以在不改变当前核心逻辑的情况下为具体字段增加针对性提示。十二、页面有哪些明确边界这个页面可以完成本地输入、选择、数值调整、协议勾选、条件判断和提示更新但它没有真实后端提交。点击成功后页面不会发起网络请求不会向服务器传输姓名、手机号或密码也不会生成用户记录。页面没有真正的手机号验证码流程。手机号长度达到 11 位只是演示条件不能证明号码真实有效。页面没有检查号码是否属于合法号段也没有发送短信或语音验证码。页面没有密码加密、密码强度检测或账号注册能力。密码输入框的隐藏效果只属于界面显示保护不能代替安全存储。页面也没有确认密码、找回密码、登录态或本地安全区域。页面没有协议正文、版本号和阅读记录。勾选框只记录一个布尔状态提交判断只关心它是否为真。用户协议文字不是可跳转链接也没有通过点击文字打开详情。页面没有持久化存储。退出页面或重新创建页面后输入内容不会被恢复。重置操作也没有撤销机制清空后的内容不会放入历史记录。性别和年龄只是当前页面内存中的状态不会写入文件或数据库。这些边界并不影响页面作为表单交互示例的价值反而让读者更容易区分“页面校验”与“完整业务提交”。在学习 ArkUI 时先把输入和状态反馈做清楚再考虑网络、存储和安全能力会更容易定位问题。十三、从用户角度走一遍完整流程第一步用户看到空的姓名、手机号和密码输入框性别默认为保密年龄默认为 28协议未勾选提示文字要求填写信息。此时可以直接点击提交页面会显示校验错误但输入框内容不会自动被修改。第二步用户输入姓名。每输入一个字符姓名框都会显示最新内容。用户可以删除文字直到留下满意的内容。页面不会因为姓名暂时为空而弹出错误也不会在输入过程中改变底部提示。第三步用户输入手机号。手机号框的输入体验更适合数字号码。输入不足 11 位时页面仍然允许继续编辑不会阻止输入。只有提交时才进行长度判断。第四步用户输入密码。密码内容以隐藏形式显示。输入长度达到 6 位后密码满足当前最低长度条件但提示文字仍然保持原样直到点击提交。第五步用户选择性别或调整年龄。性别按钮的选中颜色立即改变年龄数字立即变化。这些操作不会影响已经填写的三个输入框也不会自动修改协议状态。第六步用户勾选协议。复选框变为选中状态表示同意条件已经满足。用户也可以在提交前取消勾选取消后提交条件会重新变为不满足。第七步用户点击提交。页面将姓名、手机号、密码和协议状态放在一起检查。如果全部符合条件提示卡片显示成功否则显示错误。页面不跳转也不弹出新的页面。第八步用户点击重置。所有输入被清空性别、年龄和协议恢复默认提示变为“表单已重置”。之后可以重新走一遍流程。十四、适合初学者观察的 ArkUI 思路这个页面很适合观察声明式 UI 的基本关系界面不是由一系列手动刷新命令拼成而是由当前状态描述出来。姓名状态是什么输入框就显示什么年龄状态是什么年龄文字就显示什么性别状态对应哪个位置哪个按钮就显示选中颜色提示状态是什么提示卡片就展示什么文字。用户操作是状态变化的来源。输入框变化会更新对应文本按钮点击会更新性别或年龄复选框变化会更新协议状态重置和提交会更新多个状态或提示状态。状态改变以后依赖它的界面部分自动呈现新的结果。这种关系比直接寻找某个控件并修改它的颜色更容易维护。页面中有许多不同类型的状态但每个状态职责相对单一。姓名不负责控制年龄年龄不负责改变密码协议也不负责改变性别。多个状态在提交时被集中读取形成一次整体判断。这样的拆分让每个交互都比较容易理解。同时也能看到声明式写法并不会自动替开发者决定业务规则。手机号是否至少 11 位、密码是否至少 6 位、协议是否必须勾选都是页面设计者明确写出的条件。框架负责根据状态显示界面但不会替页面猜测什么输入才算合法。规则需要先被定义才能被正确呈现。十五、如果继续完善这个页面应该从哪里入手在不改变当前页面结构的前提下第一项改进可以是把统一错误提示拆成字段级提示。姓名为空时提示姓名不能为空手机号不足 11 位时提示手机号长度不足密码不足 6 位时提示密码长度不足协议未勾选时提示需要先同意协议。这样用户能够更快定位问题。第二项改进可以是在输入过程中做温和校验。例如手机号输入到 11 位时显示长度满足密码达到 6 位时显示最低长度满足。但需要注意不要让即时提示过于频繁否则用户还没有完成输入就会看到大量变化。第三项改进可以是给性别文字和协议文字提供更完整的可操作区域。当前页面只有三个性别按钮和一个复选框真正改变状态文字只是展示。扩大点击区域可以降低小屏幕上的误操作概率。第四项改进可以是增加真实业务前置条件但这部分不能从当前页面直接推导出来。比如接入验证码、提交网络请求、服务端返回错误、保存草稿和密码安全处理都属于新的能力需要单独设计接口、加载状态和失败状态不能仅凭当前页面的成功文字就认为已经存在。第五项改进可以是增加提交中的状态。当前提交判断是即时完成的因此没有加载动画。如果未来加入网络请求就需要区分“等待提交”“提交成功”和“提交失败”并在请求期间避免重复点击。当前页面没有这些状态不能把底部按钮描述成正在执行真实注册操作。十六、运行时可以重点观察什么打开页面时重点观察三个输入框是否为空、性别是否默认保密、年龄是否显示 28、协议是否未勾选、提示文字是否为引导语。这样可以确认初始状态和首屏布局。输入姓名、手机号和密码时观察文字是否分别出现在对应输入框中密码是否以隐藏形式显示。输入手机号时注意输入类型带来的键盘差异但不要把键盘表现误认为页面已经完成号码验证。点击三个性别按钮时观察蓝色选中态是否只存在于最后点击的选项。连续点击加号和减号观察年龄数字是否逐次变化并在年龄减到 1 后继续点击减号确认它不再继续下降。点击协议复选框观察勾选状态是否切换。随后在姓名、手机号和密码为空的情况下点击提交提示应显示错误。补齐条件后再次提交提示应显示成功。成功后删除姓名再次提交提示应回到错误状态。最后点击重置观察输入框、性别、年龄、协议和提示是否全部恢复。这个步骤能同时验证页面的清理逻辑是否覆盖所有表单状态。十七、常见误解与正确理解看到“校验通过表单已提交”这句话时不要直接把它理解成数据已经提交到云端。它是页面根据四个本地条件生成的反馈文字。没有网络请求、没有服务端返回值也没有持久化记录。看到手机号输入框使用电话类型时也不要把它理解成系统已经验证号码。输入类型主要影响输入体验页面实际判断只使用长度条件。真实号码验证还需要验证码、服务端校验或其他业务能力。看到密码输入内容被隐藏时也不要把它理解成密码已经安全保存。隐藏只是输入框的视觉表现页面没有把密码保存到本地或发送到服务器。安全存储需要更严格的设计。看到协议勾选后可以提交时也不要把它理解成协议正文已经被展示并完成法律意义上的签署。当前页面只维护一个勾选状态协议文本没有详情和版本控制。看到年龄有减号边界时也不要把它理解成已经完成了完整年龄合法性校验。页面只阻止年龄减到 1 以下加号没有上限提交也不检查年龄。它主要用来演示数值状态与边界保护。十八、总结这个表单页面的重点不在于控件数量多而在于它把一次填写过程拆成了几种清晰的状态三个文本输入、一个互斥选项、一个可增减数值、一个同意开关和一条结果提示。用户通过输入和点击改变状态页面用文字、颜色和数字变化把状态呈现出来。姓名、手机号和密码负责承载文本内容手机号和密码在提交时分别接受最低长度要求性别负责展示互斥选项年龄负责展示加减和下限保护协议负责提供一个必须主动确认的条件重置负责把所有状态恢复到起点提交负责把当前条件汇总成成功或失败提示。从交互体验角度看页面的优势是流程短、反馈直接、状态关系容易观察。用户不需要跳转页面也不需要等待网络只要填写、选择、勾选和点击按钮就能完整体验一个表单从空白到校验结果的过程。页面的限制同样清楚没有字段级错误、没有后端提交、没有账号创建、没有验证码、没有持久化和安全存储。从 ArkUI 学习角度看它展示了一个重要原则界面显示什么取决于状态是什么用户操作改变状态界面随后自然更新。只要把每个字段的职责、默认值、改变方式和反馈结果定义清楚就能构建出可读、可操作、可验证的表单页面。后续无论扩展为注册、预约、问卷还是设置页面都可以在这套清晰的状态关系上继续增加业务能力。对于初学者来说最值得保留的不是某一段固定写法而是观察完整闭环的方法先确认初始状态再逐项输入和操作接着验证成功条件与失败条件最后检查重置是否恢复全部内容。这样既能理解表单的用户体验也能更准确地判断一个页面到底实现了什么、还没有实现什么。这篇文章中的成功与失败均指当前页面的本地校验结果。页面没有真实后端提交、账号创建、验证码、协议详情、密码保存或数据持久化能力。
返回列表