ProtoPie AI 已上线——现已进入 Beta 版。了解更多

ProtoPie AI 已上线——现已进入 Beta 版。了解更多

ProtoPie 学校

15

阅读时间

使用条件逻辑快速创建表单字段

在 ProtoPie 中使用真实文本输入,掌握输入字段和表单验证。

Khonok Lee, 客户学习负责人

表单字段验证是任何应用或网页用户体验设计的核心。它可防止用户出错,并在填写在线表单时像贴心助手一样引导他们获得顺畅体验。在设计阶段,专门为表单验证创建原型能让设计师收集关于用户流程的宝贵反馈,确保输入正确信息,从而节省时间和资源。

为此,你需要一款能够在设计中充分运用条件逻辑能力的工具。本文将指导你如何使用 ProtoPie 为输入字段制作原型。更棒的是,你可以在自己的设备上用原生键盘进行真实文本输入,轻松测试原型。

概览

  • 什么是必填字段验证?

  • 如何在 ProtoPie 中制作必填字段验证原型

  • 什么是范围检查?

  • 如何在 ProtoPie 中制作范围检查原型

  • 什么是一致性检查?

  • 如何在 ProtoPie 中制作一致性检查原型

  • 什么是数据类型验证?

  • 如何在 ProtoPie 中制作数据类型验证原型

  • 什么是模式匹配?

  • 如何在 ProtoPie 中制作模式匹配原型

  • 使用 ProtoPie 设计更好的用户体验

开始之前

要积极参与本教程,请下载下面的示例 .pie 文件并在不同场景间切换。我们建议先从空白项目开始——先尽情练习,然后再查看完整项目,看看自己的完成情况。祝你原型设计愉快!

什么是必填字段验证?

必填字段验证是一种表单验证技术,用于确保在提交表单前必须填写某个输入字段。这是一种确保用户提供必要数据的方法。该验证通常通过红色星号 (``*``) 标示,是指示必填字段的常见方式。

它适用于多种输入类型,例如文本、搜索、URL、电话、电子邮件、密码、日期选择器、数字、复选框、单选按钮和文件。该验证通过阻止提交不完整表单来改善用户体验。ProtoPie 的输入图层功能让这一过程变得轻而易举。

如何在 ProtoPie 中制作必填字段验证原型

现在,让我们来看一个请求填写必需名字的文本字段示例。在初始项目中,我们已经为你准备了一些设计和交互:


required field validation


必填字段验证

  • 在设计方面,屏幕上有一条错误消息。稍后会为其添加动画,以便根据用户输入显示或隐藏。

  • 在交互方面,我们已使用“Focus”触发器为“Text Field”设置了默认和聚焦状态。

让我们先隐藏错误消息。你可以通过将其不透明度设置为 0来实现。


opacity error message


将错误消息的不透明度设为 0。

输入内容后,点击文本字段外部,或按下键盘上的 Enter 键。此时,我们将检查文本字段是否仍为空。如果文本字段为空,我们将显示文本字段的错误状态,并在下方显示错误消息。

  1. 在“Focus Out”触发器下添加一个条件。将条件设置为 Text of Text Field = "NONE"。该条件用于检查文本字段是否为空。


condition to verify required field


用于检查文本字段是否为空的条件。

  1. 当条件满足时,就可以为错误状态添加动画了。

  • 为“Error Message”图层添加“Opacity”响应,将其不透明度设为 100。

  • 另外,为“Text Field”图层添加“Border”响应,并将边框颜色设为红色。


animate error state


为错误状态添加动画。

  1. 接下来,我们再添加一些交互:当文本字段有内容时,错误消息会消失。为此,我们将使用“Detect”触发器。Detect 触发器会持续监测目标对象的任何变化。

  • 在“Text Field”图层上添加“Detect”触发器,并检测其“Text”属性。(对于输入图层,Text 属性表示字段内的内容)

  • 接着,创建一个条件来验证文本字段是否已填写。使用条件 Text of Text Field ≠ "NONE"

  • 在该条件下,通过对错误消息应用“Opacity”响应并将其设为 0,使错误消息消失。


detect content in text field


检测文本字段中的内容。

什么是范围检查?

范围检查是一种输入验证,用于验证输入数据是否落在预定义范围内。以下是一些范围检查示例:

  • 年龄:例如,中学生通常年龄在 11 到 16 岁之间。计算机可以被编程为只接受 11 到 16 之间的数字。

  • 地理数据:纬度和经度常用于地理数据。纬度值应在 -90 到 90 之间,而经度值必须在 -180 到 180 之间。超出此范围的值均为无效。

  • 字符串:对字符串进行最小与最大长度检查。例如,检查密码长度是否在 8 到 16 个字符之间。

如何在 ProtoPie 中制作范围检查原型

在示例项目中,进入名为“Range Checking”的场景。

让我们从一个示例开始:要求中学生输入年龄,并确保其在 11 到 16 岁范围内。


range check gif


范围检查

这个交互基于我们的第一个示例,确保用户必须输入内容。该场景的预配置交互可在交互面板中的“Age”组找到。

让我们让 ProtoPie 在用户从该文本字段失焦时验证输入值。

  1. 在“Focus Out”触发器下再添加一个条件。将条件配置为 Text of Text Field - Age < 11,用于处理用户输入小于 11 岁的情况。实现以下响应:


condition to verify minimum value


用于验证值是否小于 11 的条件。

  • 为“Error Message - Age”图层添加“Opacity”响应,将其不透明度设为 100。

  • 为“Text Field - Age”图层添加“Border”响应,并将边框颜色设为红色。


range checking error state


年龄低于 11 会触发错误状态。

  1. 再创建一个条件,使用 Text of Text Field - Age > 16 检查年龄是否大于 16。通过复制粘贴实现与上一个条件相同的交互。这样可确保当用户输入大于 16 的年龄时显示错误消息。


range checking apply same error state


当年龄超过 16 时,同样会触发错误状态。

接下来进入第二个示例,我们将验证密码长度。要求密码长度在 8 到 16 个字符之间。


password must be 8 to 16 characters long


密码必须满足特定长度要求。

你可以在交互面板中的“Password”组找到一些预制交互。

现在让我们为“Focus Out”配置错误状态。

  1. 第一个条件用于检查密码是否过短,因此使用 length(Text Field - Password.text) < 8length() 是 ProtoPie 中用于检查字符串长度的函数。


condition verify length


用于检查密码是否过短的条件。

  1. 第二个条件用于检查密码是否过长:length(Text Field - Password.text) > 16


condition to check password length


用于验证密码长度是否过短或过长的条件。

什么是一致性检查?

一致性检查是一种数据验证,用于确保输入的数据在逻辑上保持一致。它会检查数据内部是否存在冲突,特别是数据规则中是否有互相矛盾的陈述,例如:

  • 密码确认:要求重新输入密码的字段可检查其是否与之前输入的密码一致。

  • 下单与配送日期:检查包裹的配送日期是否晚于发货日期。同样,包裹发货日期不应早于下单日期。

如何在 ProtoPie 中制作一致性检查原型

让我们看一个示例:要求用户重新输入密码进行确认。


consistency checking gif


一致性检查

在示例项目中,进入名为“Consistency Checking”的场景。我们已经准备好了密码字段的交互。现在让我们专注于“Confirm Password”字段。

  1. 在交互面板的“Confirm Password”组中,找到“Mouse Out”触发器。

  2. 添加条件检查:Text of Text Field - Confirm Password ≠ Text of Text Field - Password。该条件表示两个密码不一致。


condition to compare the content in password fields


用于比较两个密码字段内容的条件。

  1. 在该条件下,我们可以配置错误状态:将文本字段边框设为红色并显示错误消息。


error state consistency


当两个字段输入的密码不一致时添加错误状态。

什么是数据类型验证?

数据类型检查是一种输入验证,用于确保输入到字段中的数据符合预期的数据类型。例如,

  • 年龄:年龄字段通常只允许数字。例如在线填写表单时,年龄字段会拒绝任何非数字输入。

  • 信用卡号:输入信用卡号时仅允许数字。任何字母或特殊字符都会被拒绝。

  • 城市名称:在某些应用中,城市名称字段仅允许字母。例如,它会拒绝“Toronto123”之类的输入,只接受像“Toronto”这样的纯字母输入。

如何在 ProtoPie 中制作数据类型验证原型

让我们看一个实际场景:输入字段专门要求输入整数数量。


data type validation


数据类型验证

这个示例位于示例项目中的“Data Type Validation”场景。

  1. 在“Mouse Out”触发器下,创建一个条件来验证用户输入。

  2. 在该条件中,我们需要严格拒绝任何非数字输入。使用以下条件:`regexextract(Text Field``.text,"[0-9]+") ≠ Text of Text Field```


condition data type


用于验证值是否为数字的条件。

  1. regexextract():该函数用于提取第一个匹配指定正则表达式模式的子字符串。

  2. ``Text Field.text:指“Text Field”输入中的文本内容。

  3. "[0-9]+":这是一个正则表达式模式。其含义如下:

  • [0-9]:匹配 0 到 9 的任意数字。

  • +:表示前面的模式(此处为 [0-9])应连续出现一次或多次。

等式左侧(regexextract(Text Field.text,"[0-9]+"))会从输入文本中提取第一段由数字组成的子字符串。例如:

  • 如果输入 "123abc,",返回 "123."

  • 如果输入 "def456,",返回 "456."

该条件会检查提取出的数字子串是否与“Text Field”中的原始文本不一致。如果不一致,说明输入中包含非数字字符。

  1. 在该条件下,我们可以为此情况设置错误状态:将文本字段边框颜色调整为红色并显示错误消息。


error state box color


*调整框的颜色以指示错误消息。*

什么是模式匹配?

模式匹配在输入验证中是指先定义特定模式或格式,然后检查输入数据是否符合该模式。在软件开发中,通常使用正则表达式(regex)来实现这一点。

正则表达式(通常称为 regex)通过指定模式来搜索字符串中的特定字符或单词。如果你不喜欢深入代码,也可以借助 AI 帮你生成所需代码。

以下是几个展示模式匹配的示例:

  • 电子邮件验证:确保电子邮件地址有效,需要检查输入是否符合邮箱的一般模式。通常包括 "@" 符号前的字符、后续字符以及结尾的句点。句点后应至少有两个 a 到 z 的字母。

  • 密码验证:验证密码通常要求符合特定模式。例如,密码可能需要至少包含一个数字、一个大写字母和一个小写字母,并且长度至少为 8 个字符。

想进一步了解正则表达式,你可以参考这份快速指南。如果编码不是你的强项,也可以随时请 AI 帮你生成所需代码!

如何在 ProtoPie 中制作模式匹配原型

让我们在示例项目的“Pattern Matching”场景中探索密码模式检查,要求用户密码中至少包含 1 个大写字母和 3 个数字。


pattern matching


模式匹配

  1. 在“Mouse Out”触发器下,创建第一个条件以验证密码是否满足大写字母要求。将条件配置为:regexextract(Text Field - Password`.text,"[A-Z]") = "NONE”```


condition match pattern uppercase


用于验证是否至少有一个大写字母的条件。

  • 模式 [A-Z] 本身即可成功匹配字符串中的第一个大写字母。例如输入 "abcDE," 时,会返回 "D."。尽管该函数在找到第一个结果后就停止检查,但只要它有返回值,就表示输入中至少包含一个大写字母。

  • 如果返回 "NONE," 则表示条件不满足,验证失败。在该条件下方,我们可以继续为字段添加错误状态动画。

  1. 第二个条件用于验证密码是否至少包含 3 个数字,使用以下要求:regexextract(Text Field - Password`.text,"^(.?[0-9]){3,}.$")= "NONE”```


condition pattern match number


用于确保至少有三个数字的条件。

  • ^:断言字符串开头。

  • (.*?[0-9]):匹配任意字符序列(非贪婪),后跟一个数字。

  • {3,}:指定前面的模式 (.*?[0-9]) 至少出现三次。

  • .*:匹配其余任意字符。

  • $:断言字符串结尾。

通过该函数,ProtoPie 会严格检查并返回满足指定要求的字符串。如果返回 "NONE," 则表示条件不满足,即验证失败。此时我们应继续为密码字段添加错误状态动画。

使用 ProtoPie 设计更好的用户体验

表单字段只是产品设计中的众多环节之一,而 ProtoPie 能让这些工作变得高效得多。整合必填检查、范围验证、一致性检查、数据类型验证和模式匹配等验证模式都非常轻松。

立即体验 ProtoPie 的高保真原型功能,提升设计的整体效果!