在 Qualtrics 中使用运行时数据实时执行简单的数学运算
Performing a Simple Math Operation in Real Time with Runtime Data in Qualtrics
我在 Qualtrics 的一项调查中有一个滑块,需要在滑块上显示来自两个 "ends" 的值(所以如果受访者将手柄置于值 55,我需要滑块下方显示一个带有“55”和“45”的框,因为最大值为 100,即 100-55=45)。
我已经设法通过用户输入(在上面的示例中为“55”)显示滑块的值,并在文本问题中使用以下 HTML 片段,其中放置了一个方框页面上某处滑块的值:
<input class="SumInput InputText QID29 QWatchTimer" data-runtime-value="runtime.Choices.1.Value" id="QID29" name="QID29" type="text" value="" />
但是,我无法得到另一个框,它基本上显示 100 减去 runtime.Choices.1.Value 中的任何一个(“45”)。我试过简单的“100-runtime.Choices.1.Value”,“100”-"runtime.Choices.1.Value",没有任何引号,几乎所有可能的数学函数 CSS/HTML .我知道从技术上讲 HTML 只显示并且不会真正进行这种运行时计算(我是新手,所以这是我所知道的),所以如果有任何 Javascript代码片段或其他一些代码可以实时显示 100 减去用户将滑块上的手柄移动到的位置,这太棒了。我假设有某种 addOnClick 函数,但不知道如何引用滑块上的任何内容来执行此操作。
这是一项如此简单的任务,但由于某种原因,到目前为止却花了很多时间。任何帮助表示赞赏;谢谢!
我已经设法针对滑块的特定示例解决了这个问题,但我认为以下 Javascript 应该适用于可能的许多问题类型,前提是使用正确的 getChoiceValue(即更改“1 "到页面上要获取其答案值的元素对应的数字):
Qualtrics.SurveyEngine.addOnload(function() {
/*Place your JavaScript here to run when the page loads*/
var result=0;
var otherend= 0;
this.questionclick = function(event,element){
result = this.getChoiceValue(1);
endupdate();
document.getElementById("otherend").innerHTML=otherend;
document.getElementById("result").innerHTML=result;
}
function endupdate() {
otherend=100-result;
}
});
然后我在问题文本的 HTML 中添加了以下内容,无论我希望它出现在哪里(我个人将其放在 table 中,这样我就可以在页面上很好地居中, 连同一些解释性文字):
<span id="result">0</span>
<span id="otherend">0</span>
希望这能为其他人节省一些时间和精力!
我在 Qualtrics 的一项调查中有一个滑块,需要在滑块上显示来自两个 "ends" 的值(所以如果受访者将手柄置于值 55,我需要滑块下方显示一个带有“55”和“45”的框,因为最大值为 100,即 100-55=45)。
我已经设法通过用户输入(在上面的示例中为“55”)显示滑块的值,并在文本问题中使用以下 HTML 片段,其中放置了一个方框页面上某处滑块的值:
<input class="SumInput InputText QID29 QWatchTimer" data-runtime-value="runtime.Choices.1.Value" id="QID29" name="QID29" type="text" value="" />
但是,我无法得到另一个框,它基本上显示 100 减去 runtime.Choices.1.Value 中的任何一个(“45”)。我试过简单的“100-runtime.Choices.1.Value”,“100”-"runtime.Choices.1.Value",没有任何引号,几乎所有可能的数学函数 CSS/HTML .我知道从技术上讲 HTML 只显示并且不会真正进行这种运行时计算(我是新手,所以这是我所知道的),所以如果有任何 Javascript代码片段或其他一些代码可以实时显示 100 减去用户将滑块上的手柄移动到的位置,这太棒了。我假设有某种 addOnClick 函数,但不知道如何引用滑块上的任何内容来执行此操作。
这是一项如此简单的任务,但由于某种原因,到目前为止却花了很多时间。任何帮助表示赞赏;谢谢!
我已经设法针对滑块的特定示例解决了这个问题,但我认为以下 Javascript 应该适用于可能的许多问题类型,前提是使用正确的 getChoiceValue(即更改“1 "到页面上要获取其答案值的元素对应的数字):
Qualtrics.SurveyEngine.addOnload(function() {
/*Place your JavaScript here to run when the page loads*/
var result=0;
var otherend= 0;
this.questionclick = function(event,element){
result = this.getChoiceValue(1);
endupdate();
document.getElementById("otherend").innerHTML=otherend;
document.getElementById("result").innerHTML=result;
}
function endupdate() {
otherend=100-result;
}
});
然后我在问题文本的 HTML 中添加了以下内容,无论我希望它出现在哪里(我个人将其放在 table 中,这样我就可以在页面上很好地居中, 连同一些解释性文字):
<span id="result">0</span>
<span id="otherend">0</span>
希望这能为其他人节省一些时间和精力!