在Qualtrics中,可以使用“自定义开始位置”设置可拖动条的起始位置(即它们的宽度)。这是通过在编辑测量时将条拖动到所需宽度来完成的。 但是,我正在寻找一种方法,使用JavaScript(或原型JavaScript)将条形的宽度设置为起始位置。
以下是我的尝试,首先(成功)尝试更改条形的颜色(在qualtrics和jsfiddle中),然后(成功)尝试调整这些尝试来改变jsfiddle上的条形宽度;因为在jsfiddle上工作的东西在Qualtrics上不起作用而卡住了。
在Qualtrics中,我可以使用以下原型JavaScript(改编自this answer)更改可拖动滑块的颜色:
Qualtrics.SurveyEngine.addOnload(function()
{
//change the color of all bars to red for testing
$(this.questionId).select('.bar').each(function(name, index) {
name.style.backgroundColor = "red";
});
});
可以看到(并检查)here的结果。检查链接中的调查确实显示background-color
设置为红色:
<div id="QID2~2~bar" class="bar" style="width: 103px; background-color: red;"></div>
。宽度参数也存在,这意味着我应该能够使用以下代码修改宽度(在将库设置为原型时,确实可以在jsfiddle上工作):
$("test").select('.bar').each(function(name, index) {
name.setStyle({ width: '40px'});
});
但是,此代码不适用于Qualtrics(将$("test")
替换为$(this.questionId)
并包含Qualtrics addOnload
函数中的代码时)。
以下javascript也适用于Qualtrics更改条形颜色(改编自this answer):
Qualtrics.SurveyEngine.addOnload(function()
{
//change the color of all bars to red for testing
var bar = document.querySelectorAll('.bar');
for (var i=0; i < bar.length; i++) {
bar[i].setAttribute("style", "background-color:red");
}
});
使用此代码,我还可以在jsfiddle上调整div宽度:
var bar = document.querySelectorAll('.bar');
for (var i=0; i < bar.length; i++) {
bar[i].setAttribute("style", "width:40px");
}
然而,这再次对Qualtrics没有影响。
所以,长话短说:有没有办法以编程方式将Qualtrics中的条形图设置为起始位置,例如,将其宽度设置为父div的50%?
更新:
在深入研究Qualtrics Question API之后,我找到setChoiceValue
,我可以通过编程方式选择多个选项。例如,
Qualtrics.SurveyEngine.addOnload(function()
{
this.setChoiceValue(2,true);
});
将通过将其值设置为true来选择第二个单选按钮:
但是,到目前为止,我无法将setChoiceValue
应用于可拖动栏或找到类似的等效词。
更新2:
Qualtrics支持(非常友好和平易近人)建议setChoiceAnswerValue
可能是我正在寻找的。但是他们也解释说他们无法为JavaScript提供客户支持。我看了more recent version of the API documentation,其中也列出了setChoiceAnswerValue
,但到目前为止还没有成功。
答案 0 :(得分:0)
我必须在我的原始代码中输入一个拼写错误,因为事实证明我开始实际工作的是:
Qualtrics.SurveyEngine.addOnload(function()
{
$(this.questionId).select('.bar').each(function(name, index) {
name.setStyle({ width: '50px'});
});
});
答案 1 :(得分:0)
以下是使用Qualtrics Question API中记录的setChoiceValue
方法为可拖动条设置自定义起始位置的解决方案。
以下是使用以前问题中的嵌入数据的10个小节的问题的示例代码。
var embedded = ["${e://Field/r1}", "${e://Field/r2}",
"${e://Field/r3}", "${e://Field/r4}", "${e://Field/r5}",
"${e://Field/r6}", "${e://Field/r7}", "${e://Field/r8}",
"${e://Field/r9}", "${e://Field/r10}"];
for (var i = 0; i < 11; i++) {
var index = i + 1;
var choiceInput = embedded[i];
this.setChoiceValue(index, choiceInput);
}
用于设置一个条的自定义值:
Qualtrics.SurveyEngine.addOnload(function()
{
this.setChoiceValue(2, "80");
});