Qualtrics同一页面多问题添加选项按钮联动问题求助
解决Qualtrics多问题添加按钮跨联动问题
原代码出现跨问题联动的核心原因有两个:
- 所有添加按钮使用了相同的
id='add',HTML要求ID全局唯一,重复ID会导致事件绑定和元素选择混乱。 - 统计可见选项行时,
jQuery("tr.ChoiceRow:visible")会选中页面所有问题的可见行,而非当前问题内的行,导致操作互相干扰。
以下是修改后的独立运行代码:
var questionContainer = jQuery("#" + this.questionId); // 隐藏当前问题除第一行外的所有选项行 questionContainer.find("tr.ChoiceRow:not(:lt(1))").hide(); // 创建添加按钮,用类名替代固定ID避免冲突 var addButton = jQuery("<input type='button' class='qualtrics-add-field' value='Add field' name='+' />"); addButton.insertAfter(questionContainer.find("tr.ChoiceRow:last")); // 绑定点击事件,所有操作限定在当前问题容器内 addButton.on('click', function(){ var visibleCount = questionContainer.find("tr.ChoiceRow:visible").length; questionContainer.find("tr.ChoiceRow:eq(" + visibleCount + ")").show(); });
关键修改说明:
- 用
questionContainer缓存当前问题的容器,后续所有DOM操作都基于这个容器,确保只影响当前问题。 - 按钮改用类名
qualtrics-add-field替代固定ID,避免同一页面ID重复冲突。 - 所有元素选择通过
questionContainer.find()限定范围,彻底隔离不同问题的操作逻辑。
内容的提问来源于stack exchange,提问作者ALav44
相关产品推荐
相关产品推荐

