REDCap问卷:无需全组合分支逻辑实现多Y/N题后条件弹窗咨询
REDCap实现多Y/N问题任意选“否”后统一弹窗的方案
完全不需要为所有Y/Y/N这类组合设置分支逻辑,以下两种方案可以轻松实现需求:
方案一:用REDCap内置功能(无需代码)
- 先添加一个隐藏的计算字段,变量名比如
has_no,计算逻辑写:
这里if([q1] = 0 or [q2] = 0 or [q3] = 0, 1, 0)q1、q2、q3替换成你三个Y/N问题的实际变量名,0代表“否”,1代表“是”。这个字段会自动判断:只要有一个问题选“否”,就返回1,否则返回0。 - 进入项目的调查设置,找到调查提示模块,新增一条提示:
- 触发条件设置为:
[has_no] = 1,同时确保触发时机是在受访者完成三个问题之后(比如设置为“当用户离开当前页面时”,如果三个问题在同一页面的话)。 - 提示类型选择“弹出警告”,填写你需要的提示文本即可。
- 触发条件设置为:
方案二:用自定义JavaScript(更灵活)
如果你的项目允许自定义脚本,直接在三个问题所在页面添加以下代码(替换变量名即可):
$(document).ready(function() { // 监听下一步/提交按钮点击事件 $('#saveForm, .btn-next').click(function(e) { // 获取三个问题的选中值 var q1Val = $('input[name="q1"]:checked').val(); var q2Val = $('input[name="q2"]:checked').val(); var q3Val = $('input[name="q3"]:checked').val(); // 判断是否存在任意一个“否”(0) if (q1Val == 0 || q2Val == 0 || q3Val == 0) { // 弹出提示框 alert('请填写你的提示内容'); // 如果需要阻止页面跳转,取消下面一行注释 // e.preventDefault(); } }); });
- 注意:把代码里的
q1、q2、q3换成你实际的问题变量名,按钮选择器如果和项目里的不一致,需要根据页面元素调整。
两种方案都不需要枚举所有Y/N组合,方案一适合无代码基础的用户,方案二可以自定义弹窗样式或添加更多逻辑。
内容的提问来源于stack exchange,提问作者Alice
相关产品推荐
相关产品推荐

