我已经为此苦苦挣扎了很长时间,终于有了一半的解决方案,但其余的没有。

基本上,我需要Qualtrics的受访者在内联文本框中输入数字输入,并且我希望将该输入存储为“嵌入式数据”。

到目前为止,在Qualtrics页面的html中,我有

Enter data here: <input type="text" id="myText" value=" ">
<input type="submit" value="Confirm" onclick="formdata()"/>

<script>
function formdata(){
var questionanswer= document.getElementById("myText").value;
Qualtrics.SurveyEngine.setEmbeddedData("Q1input", questionanswer);
}
</script>


这很好。它创建一个文本框,他们可以在其中输入“ myText”,然后将其存储为Embedded Data Q1input,以后可以访问。但是,这很烦人,因为他们必须单击我创建的“确认”按钮,然后使用普通的“质量下一页”按钮离开该页面。我这样做是因为单击“ Qualtrics下一个”按钮时无法通过运行它完全使它无法工作,因此我必须使其在我自己的按钮上运行。

我尝试使用disableNextButton和clickNextButton Qualtrics代码禁用“下一页”按钮,但我不知道将其放置在何处。我可以通过将代码放在addOnload部分中来禁用NextButton,但似乎无法让clickNextButton在formdata函数中运行。

任何帮助将不胜感激!我不太了解JavaScript;我只是想对此进行调查。

最佳答案

处理此问题的最简单方法实际上是在文本输入字段发生更改时随时调用函数。由于Qualtrics包含PrototypeJS,因此可以使用以下内容:

Enter data here: <input type="text" id="myText" value=" ">

<script>
function formdata(){
var questionanswer= document.getElementById("myText").value;
Qualtrics.SurveyEngine.setEmbeddedData("Q1input", questionanswer);
}

$('myText').observe('change', formdata());
</script>


这里有两个想法:


您应该将脚本包括在问题的JavaScript部分中,而不是html编辑器中。它属于addOnReady部分。

Qualtrics.SurveyEngine.addOnReady(function()
{
函数formdata(){
    var questionanswer = document.getElementById(“ myText”)。value;
    Qualtrics.SurveyEngine.setEmbeddedData(“ Q1input”,Questionanswer);
}

$('myText')。observe('change',formdata());
});
通过在Qualtrics中使用文本输入问题类型,然后使用管道文本将其添加到调查流中的嵌入式数据字段中,可以达到相同的效果。

09-25 19:11