![](/img/trans.png)
[英]Qualtrics: Custom JavaScript ceases to work when importing questions to a new survey
[英]How do you apply the same javascript code to multiple questions in Qualtrics survey?
我的一个调查问题中有一些 javascript 改变了某个字段的格式。 它工作得很好,但我想将相同的代码应用于其他几个问题。 显然,我可以简单地复制并粘贴到每个问题上,但是有没有办法将代码设置在一个位置,以便更易于维护? 我查看了许多论坛,但未能找到解决方案。 在此先感谢您的帮助。
编辑:这是 JavaScript 代码,我想重复多个问题:
{
/*Place your JavaScript here to run when the page is fully displayed*/
jQuery("#"+this.questionId+" select option:first-child").text("Select one");
jQuery("#"+ this.questionId + " option").each(function () {
if (jQuery(this).text().includes("\"\"")) {
jQuery(this).hide();
}else{
title = jQuery(this).text()
title = title.match(/".*"/)
if(title != null && title[0].length > 30){
newTitle = title[0].match(/^.{30}.*?\s/)[0]
if(newTitle != title){
newTitle = newTitle + "...\""
}
text = jQuery(this).text()
jQuery(this).text(text.replace(title[0],newTitle))
}
}
});
});
基本上,每个联系人都预加载了一些嵌入式数据,并且有几个问题涉及一个下拉菜单,允许用户选择 select 他们的哪些数据元素与项目相关。 此代码可确保下拉列表中不包含空白或缺失数据,并且如果选项的字符数过多,则会被截断。 多个问题包含相同的下拉选项,但在其他方面有所不同。
将您的代码设为 function 并将其放入 Qualtrics header。 从适用的每个问题中调用 function。
在 header 中:
<script>
myFunction(qobj) {
jQuery("#"+qobj.questionId+" select option:first-child")...etc...
}
</script>
然后在你的问题中:
Qualtrics.SurveyEngine.addOnload(function() {
myFunction(this);
});
将相同的 class 添加到您的每个问题(我选择了myQuestion
类)然后查询它。
循环遍历每个 select 并find
option:first-child
然后find
option
并循环遍历它们。
$('.myQuestion select').each(function(selectIndex, select){ // loop through each select // for each select find all the options $(this).find("option:first-child").text("Select one"); $(this).find('option').each(function(optionIndex, option){ console.log(`select (${selectIndex}) | option (${optionIndex})`); // your code here }); })
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="myQuestion"> <select> <option value="volvo">Volvo</option> <option value="saab">Saab</option> <option value="mercedes">Mercedes</option> <option value="audi">Audi</option> </select> </div> <div class="myQuestion"> <select> <option value="volvo">Volvo</option> <option value="saab">Saab</option> <option value="mercedes">Mercedes</option> <option value="audi">Audi</option> </select> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.