如何取消SurveyJS问题中选项值的唯一性校验?
SurveyJS Creator 多选项同分值的无代码解决方法
核心思路:保留选项值唯一性,通过计算映射分数
不用强行修改选项值为重复内容,而是利用SurveyJS自带的计算功能,将不同选项映射到相同的计分,同时保留原选项供用户选择,客户也能看到具体选中项。
方法1:问题级计算值映射(推荐)
- 给目标问题的每个选项设置唯一值(比如A选项值设为"A",B设为"B",C设为"C",D设为"D"),标签保持原内容不变。
- 选中该问题,在右侧属性面板中找到**"Calculated Value"**(计算值)选项,开启后输入表达式:
(把{questionId} == "A" || {questionId} == "B" ? 0 : 1questionId替换成你实际的问题ID,0和1替换成你需要的分值) - 在问卷末尾的只读表达式中,直接引用这些问题的计算值求和,比如:
"Your score is " + ({question1} + {question2} + ...)
方法2:使用计算变量统一管理计分
如果多个问题需要类似的计分规则,可以创建全局计算变量:
- 在Creator的"Variables"面板中添加一个计算变量,比如命名为
scoreQuestion1,设置表达式:{question1} == "A" || {question1} == "B" ? 0 : 1 - 后续求和时直接用变量名相加,比如:
"Your score is " + (scoreQuestion1 + scoreQuestion2 + ...)
这两种方法都完全不需要编写额外代码,通过Creator的可视化设置就能完成,既避免了选项值重复的报错,又能让客户看到用户具体选中的选项,同时正常计算总分。
内容的提问来源于stack exchange,提问作者Tech4Care srl
相关产品推荐
相关产品推荐

