在Qualtrics中,可以使用“自定义起始位置”(Custom Start Position)设置可拖动条的起始位置(即其宽度)。这是通过在编辑测量时将条形图拖动到所需的宽度来完成的。但是,我正在寻找一种使用JavaScript(或Prototype JavaScript)将条形宽度设置为起始位置的方法。

这是我的尝试,首先(成功)尝试更改条形的颜色(定性和jsfiddle中),然后(成功)尝试适应这些尝试以更改jsfiddle上条形的宽度;然后陷入困境,因为在jsfiddle上有效的方法在Qualtrics上无效。



在Qualtrics中,我可以使用以下Prototype 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>。还有一个width参数,这意味着我应该能够使用以下代码修改宽度(在将库设置为原型时,它确实适用于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来选择第二个单选按钮:

javascript - 使用Qualtrics中的javascript将可拖动栏设置为自定义开始位置-LMLPHP

但是,到目前为止,我无法将setChoiceValue应用于可拖动的栏或找到类似的栏。



更新2:

Qualtrics支持人员(非常友好且平易近人)建议setChoiceAnswerValue可能是我想要的。但是,他们还解释说,他们无法为JavaScript提供客户支持。我看了一个同时列出了setChoiceAnswerValuemore recent version of the API documentation,但是到目前为止没有成功。

最佳答案

我一定在原始代码中打过错,因为事实证明,我最初的工作确实有效:

Qualtrics.SurveyEngine.addOnload(function()
{
            $(this.questionId).select('.bar').each(function(name, index) {
            name.setStyle({ width: '50px'});
            });
});

关于javascript - 使用Qualtrics中的javascript将可拖动栏设置为自定义开始位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39862647/

10-11 14:16