Qualtrics能否实现基于前置值的自动填充功能?
Qualtrics输入ID自动填充姓名实现方案
问题背景
- 作为Qualtrics新手,需实现输入唯一ID后自动填充对应姓名的功能,尝试过Drill Down组件无法满足需求(仍需手动选择)
- 查阅「嵌入式数据」和「通过查询字符串传递信息」相关文档,但未能理解用法,询问是否支持该功能
实现方案
Qualtrics完全支持这类自动填充需求,推荐使用嵌入式数据+JavaScript组合实现,步骤如下:
1. 准备ID-姓名映射数据
将你的唯一ID与对应姓名整理成键值对,示例:
// 可根据实际数据扩展 const idNameMapping = { "EMP001": "张三", "EMP002": "李四", "EMP003": "赵六" };
2. 添加嵌入式数据字段
在「问卷流程(Survey Flow)」中新增一个嵌入式数据字段(例如命名为UserFullName),用于存储匹配到的姓名,确保字段在问卷开头位置,可在后续流程中调用。
3. 设置ID输入问题
添加一个「文本输入」类型的问题,设置为仅接收文本/数字,作为用户输入唯一ID的入口。记录该问题的Question ID(可在问题设置的「高级」选项中查看)。
4. 编写JavaScript实现自动填充
在ID输入问题上添加JavaScript脚本,监听输入内容变化,自动匹配并填充姓名:
Qualtrics.SurveyEngine.addOnReady(function() { // 获取ID输入框元素 const idInput = document.querySelector('input[type="text"]'); // 替换为你用来显示姓名的问题ID const nameQuestionId = "QID3"; // 替换为你的ID-姓名映射数据 const idNameMapping = { "EMP001": "张三", "EMP002": "李四" }; // 监听输入变化 idInput.addEventListener('input', function() { const inputId = this.value.trim(); const matchedName = idNameMapping[inputId]; if (matchedName) { // 填充姓名到指定问题输入框 document.querySelector(`#${nameQuestionId} input`).value = matchedName; // 将姓名存入嵌入式数据 Qualtrics.SurveyEngine.setEmbeddedData("UserFullName", matchedName); } else { // ID不存在时清空姓名输入框 document.querySelector(`#${nameQuestionId} input`).value = ""; } }); });
5. 可选:批量数据处理
如果ID-姓名数据量较大,可将数据上传至Qualtrics「联系人列表」,通过嵌入式数据批量导入映射关系,避免在脚本中写入大量数据。
相关文档概念说明
- 嵌入式数据:用于在问卷流程中存储和传递信息,可保存外部导入数据或问卷内生成的临时数据,在整个问卷周期中可调用。
- 通过查询字符串传递信息:适用于从外部链接打开问卷时,提前通过URL参数传递数据自动填充,无需用户手动输入ID,与当前场景适配性较低。
内容的提问来源于stack exchange,提问作者LearningSoFar
相关产品推荐
相关产品推荐

