在设计问卷时,您很可能遇到这样的需求:希望填写到某道题目时,根据用户的选择,直接将其“引导”至结束页,从而提前筛选出不符合条件的样本。例如,年龄未满18岁、从业年限不足,或者选择了“不感兴趣”的用户,都不需要继续作答。腾讯问卷确实支持这一功能,但关键在于,您需要清楚基础逻辑与自定义逻辑各自适用的场景,以及具体的操作方法。

用基础逻辑实现简单甄别与终止
操作步骤并不复杂,我们逐步来看。首先进入问卷编辑页面,在左侧导航栏中找到【逻辑】选项并点击。在目标题目(例如Q1“您的年龄?”)的某个选项旁边,会出现一个【添加逻辑】按钮。
点击该按钮后,在弹出的面板中,【触发条件】选择“选中”,【执行动作】选择“跳转至”,然后在下拉菜单中找到并选择【结束页】。确认保存后即设置完成。此时,如果填写者选中了该选项(例如Q1中的“17岁”),点击“下一页”时,系统会直接跳转到结束页,后续题目全部隐藏。
不过需要注意,这种方式的局限性在于:它仅支持单道题目单一选项触发,无法将多个题目的条件组合使用。例如,您无法通过它同时判断“年龄小于18岁且职业为学生”这样的复合条件。
用自定义逻辑实现多条件联合终止
如果您需要更复杂的甄别条件,比如“男性且年龄小于60”或“女性且年龄小于50”时终止,则需要使用自定义逻辑。这里提供两种常见方法。
方法一:设置复合甄别条件
在【逻辑】页面中,点击右上角的【DSL自定义逻辑】,然后在编辑框中输入类似以下语句:
if (Q1A1 and Q2 < 60) or (Q1A2 and Q2 < 50) then branch from Q2 to END
这里解释一下:Q1A1代表第一题的第一个选项(例如“男性”),Q1A2代表“女性”,Q2是年龄题。整句话的含义是:当性别为男且年龄小于60,或者性别为女且年龄小于50时,从Q2题直接跳转到结束页。有一点必须提前确认:Q1必须是单选题,Q2必须是数值题,否则语法校验会失败。
方法二:用block阻断提交并提示不合格
在某些场景下,您不仅希望终止答题,还想明确告知用户被终止的原因。例如,当用户选择了“不感兴趣”,您可以输入:
if Q3 == "不感兴趣" then block Q3 with "感谢参与,本问卷仅面向有兴趣的用户"
这行代码的作用是:不会跳转页面,但在用户提交时直接拦截,并显示您指定的提示语。这里有一个细节需要注意:block动作仅在提交瞬间生效,不会改变页面跳转路径,而且它只对当前题目生效,无法跨题阻断。
关键前提与避坑提醒
自定义逻辑功能有一个硬性门槛:仅高级版可用。免费版用户点击DSL入口时,系统会提示升级。未升级状态下,所有自定义语法都会灰显,无法编辑,即使保存了也不会生效。
在基础逻辑中设置“跳转至结束页”时,还有一个容易踩坑的地方:务必确认这道题位于问卷靠前的位置。如果将其放在最后一题,再设置跳转,实际上已经没有题目可以跳转了,相当于做了无用功。
另外,如果您同时启用了基础逻辑和自定义逻辑,系统会严格按照顺序执行:先跑完所有基础逻辑,再执行自定义逻辑。这意味着,基础逻辑中的跳转可能会提前中断整个流程,导致后续的自定义语句根本没有机会运行。这一点在复杂逻辑设计时尤其需要警惕。
