Skip to main content
Version: latest

常见问题

自定义逻辑跟问卷编辑页设置的逻辑是否兼容,可同时使用?#

可以同时使用,目前自定义逻辑已实现的逻辑都兼容问卷原本的逻辑。

为什么有hide函数又有show函数?#

问卷自定义逻辑一开始设计的时候只有hide函数,因为对于问卷系统而言,没有设置任何逻辑时所有题目都是显示的,我们是通过设置逻辑来使一个题目或选项隐藏的。如"第一道题没答,隐藏第二题" if not Q1 then hide Q2

但在实际设计问卷的时候,我们一般会使用一种正向的思维,即"第一道题已答,显示第二题",所以我们增加show函数来减少使用者理解的难度。如if Q1 then show Q2

但要注意的一点是,这会带来一些新的理解问题。假如你有三道题Q1、Q2、Q3,你在问卷编辑页用非自定义逻辑的逻辑设置了"Q1已答才显示Q3",自定义逻辑中用show设置了"Q2已答才显示Q3"if Q2 then show Q3。这个时候如果只答Q2,Q3仍然是不会显示的,这里就与自定义逻辑的字面意思不同,即"满足了自定义逻辑的条件,Q2已答,但Q3并没有显示"。

而如果使用hide函数则从逻辑上比较严格一致,if not ( Q2 ) then hide Q3,只表达了Q2没填会隐藏Q3,Q2已填Q3显不显示不确定,需要看问卷的其他逻辑设置。这个也是比较严格的,也是我们为什么一开始没有使用show函数的原因。

show函数最后会被转换成hide函数,即 if xxx then show Q1 会被自动转换成 if not xxx then hide Q1

我们建议大家使用show函数来使自定义逻辑更具可读性,更符合我们大脑的思考方式。但要注意当自定义逻辑和普通逻辑共存的时候可以引起的一些理解问题。

为什么我的逻辑没有生效?#

  1. 检查是否有语法错误
  2. 请检查一下是否设置了非自定义逻辑的问卷逻辑,详细原因见上一个问题。
  3. 检查是否多条自定义逻辑同时操作了一个题目或选项,见下一个问题。

如果一个题目的显示逻辑有多个条件同时存在,以哪个为准?#

以最后一条为准。

如下例子,只有最后一行有效

if Q1 then hide Q4 # 无效,会被覆盖
if Q2 then show Q4 # 无效,会被覆盖
if Q3 then hide Q4

原因是多个条件同时存在时,我们不知道条件间的关系应该是AND

if Q1 and Q2 then show Q4

还是OR

if Q1 or Q2 then show Q4

所以需要你明确的写出来,如if Q1 and Q2 then show Q4, 否则我们只保留最后一个条件。

对同个题目的show或hide逻辑,条件要放在一起

增加题目会影响已经写好的自定义逻辑么?#

不会。

有些朋友可能会担心增加题目后导致题目序号变化,担心设置好的自定义逻辑也会受影响。其实你们看的题目序号(如Q1),只是为了让大家写自定义逻辑更加方便。当保存逻辑时,数据库储存的是这个题目的真实id(如q-1-abcd)。

所以,只要不是会导致题目id变更(删除题目等)的行为,都不会影响设置好的自定义逻辑。