概述
逻辑跳转让您创建根据受访者答案自适应的动态表单。您可以跳过问题、跳转到不同的部分,或根据受访者的回答将其引导到特定的结束页面,而不是按顺序显示每个问题。

逻辑跳转的工作原理
每个问题可以附加一个或多个逻辑跳转。受访者回答问题后,NueForm 会按顺序评估逻辑跳转。第一个条件评估为 true 的跳转决定受访者下一步去哪里。如果没有条件匹配,表单将按顺序前进到下一个问题。
基本流程
- 受访者回答一个问题。
- NueForm 按顺序检查该问题上的每个逻辑跳转。
- 第一个匹配跳转的目标决定下一个问题。
- 如果没有跳转匹配,受访者按顺序进入下一个问题。
条件
单一条件(旧版)
简单条件由三部分组成:
- 字段:要评估的问题或变量。
- 运算符:如何比较值。
- 值:要比较的值(
is_answered/is_not_answered不需要)。
复合条件
复合条件允许您使用 AND/OR 逻辑组合多个规则:
- 组合器:
and(所有规则必须匹配)或or(任一规则匹配即可)。 - 规则:单个条件规则的数组。
如果同一逻辑跳转上同时存在复合条件和旧版单一条件,复合条件优先。
运算符
NueForm 提供 10 个条件运算符。可用的运算符取决于被评估的问题类型。
所有运算符
| 运算符 | 符号 | 描述 |
|---|---|---|
equals | = | 答案与值完全相等。 |
not_equals | != | 答案与值不相等。 |
contains | 包含 | 答案包含该值(文本)或包括该值(数组)。 |
not_contains | 不包含 | 答案不包含该值。 |
greater_than | > | 数值答案大于该值。 |
less_than | < | 数值答案小于该值。 |
greater_than_or_equals | >= | 数值答案大于或等于该值。 |
less_than_or_equals | <= | 数值答案小于或等于该值。 |
is_answered | 已回答 | 问题已被回答(任何非空值)。 |
is_not_answered | 未回答 | 问题未被回答。 |
按问题类型划分的运算符
| 问题类型 | 可用运算符 |
|---|---|
| 短文本、长文本、电子邮件、电话、URL/网站 | equals、not_equals、contains、not_contains、is_answered、is_not_answered |
| 数字、评分、意见量表、NPS | equals、not_equals、greater_than、less_than、greater_than_or_equals、less_than_or_equals、is_answered、is_not_answered |
| 多选题、下拉菜单、图片选择题、排序 | equals、not_equals、is_answered、is_not_answered |
| 是/否、法律条款 | equals、not_equals、is_answered、is_not_answered |
| 日期 | equals、not_equals、is_answered、is_not_answered |
| URL 变量 | 所有运算符(equals、not_equals、contains、not_contains、greater_than、less_than、greater_than_or_equals、less_than_or_equals、is_answered、is_not_answered) |
| 所有其他类型 | equals、not_equals、is_answered、is_not_answered |
类型转换
NueForm 自动处理类型不匹配:
- 使用
equals运算符时,字符串"3"等于数字3。 - 布尔值
true匹配字符串"true"。 - 对于多选答案(数组),
contains检查所选项中是否有任何项匹配。 - 对于数组答案,
equals检查该值是否在所选项中。
目标
每个逻辑跳转指定一个目标——条件匹配时受访者应去往何处。
| 目标 | 描述 |
|---|---|
| 问题 ID | 按 ID 跳转到特定问题。问题可以在表单中的任何位置,包括之前的问题(创建循环)。 |
end | 直接跳到表单末尾(感谢页面或提交)。 |
变量操作
逻辑跳转可以包含变量操作,在跳转条件匹配时修改表单变量。这使您无需测验模式即可构建计算器、评分系统和动态内容。
操作类型
| 操作 | 描述 |
|---|---|
set | 将变量设置为特定值。 |
add | 将数值加到变量上。 |
subtract | 从变量中减去数值。 |
变量操作的工作原理
- 逻辑跳转条件评估为
true。 - 在导航到目标之前,NueForm 执行该跳转上的所有变量操作。
- 变量值在表单的变量状态中更新。
- 后续问题可以使用
{variableName}语法引用这些变量。
示例:累计分数
问题:"您有多满意?"(评分 1-5)
逻辑跳转 1:评分 >= 4 -> 下一个问题,操作:向 "score" 加 10
逻辑跳转 2:评分 >= 2 -> 下一个问题,操作:向 "score" 加 5
逻辑跳转 3:(默认)-> 下一个问题,操作:向 "score" 加 0
有关定义和使用变量的更多信息,请参阅变量指南。
标签
每个逻辑跳转可以有一个可选的标签用于文档说明。标签显示在可视化工作流编辑器中,帮助您一目了然地理解逻辑流程。
起始逻辑跳转
起始逻辑跳转在受访者看到任何问题之前评估。它们在表单加载时立即运行,可以使用 URL 变量来确定起始问题。
用例
- 根据 URL 参数将受访者路由到不同的部分(例如,
?department=sales跳转到销售相关问题)。 - 在表单开始之前根据 URL 参数预设变量。
- 为特定受众跳过欢迎页面。
配置
起始逻辑跳转在表单级别配置(而非在个别问题上)。它们遵循与问题级逻辑跳转相同的条件/目标/操作结构,但其条件字段只能引用 URL 变量(以 url: 为前缀)。
示例:按部门路由
起始逻辑跳转:
条件:url:department equals "sales"
目标:question_sales_intro
操作:将 "department" 设置为 "Sales"
URL 变量条件
在问题级和起始逻辑跳转中,您可以将 URL 参数作为条件字段引用。URL 变量字段以 url: 为前缀:
- 字段:
url:firstName评估 URL 参数?firstName=... - 字段:
url:source评估 URL 参数?source=...
URL 变量查找支持不区分大小写的回退。如果找不到精确的键,NueForm 将尝试不区分大小写的匹配。
工作流编辑器
NueForm 包含一个可视化工作流编辑器,将表单的逻辑显示为流程图。每个问题是一个节点,逻辑跳转显示为连接节点的边。工作流编辑器显示:
- 所有问题按顺序排列为节点。
- 逻辑跳转连接显示为节点之间的箭头。
- 每条边上的条件摘要(例如"评分 > 3")。
- 目标标签(问题标题或"结束")。
工作流编辑器是逻辑跳转的可视化表示。您可以直接从编辑器或问题的设置面板中添加、编辑和删除逻辑跳转。
分组中的逻辑跳转评估
当问题位于问题分组内时,子问题上的逻辑跳转工作方式略有不同:
- 如果目标是同一分组内的另一个子问题,导航在分组内部进行。
- 如果目标是分组外的问题,分组退出,表单导航到顶层的目标问题。
- 如果目标是
end,表单跳到提交。
最佳实践
- 顺序很重要:逻辑跳转从上到下评估。将更具体的条件放在更通用的条件之前。
- 始终设置回退:如果没有条件匹配,表单将前进到下一个问题。如果您想要明确控制,请在末尾添加一个兜底跳转。
- 彻底测试:使用预览功能测试通过表单的不同答案路径。
- 使用标签:为逻辑跳转添加描述性标签,使工作流编辑器易于理解。
- 保持简单:复杂的嵌套逻辑可能令人困惑。考虑使用问题分组来组织相关问题及其内部逻辑。