我长期以来一直在努力解决这个问题,最后有半个解决方案,但其余的都没有。
基本上,我需要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>
这很好用。它创建了一个文本框,可以输入&#34; myText,&#34;然后它将其存储为嵌入式数据Q1输入,然后我可以访问它。然而,它很烦人,因为他们必须点击这个&#34;确认&#34;我创建的按钮,然后使用普通的Qualtrics Next Page按钮离开页面。我之所以这样做是因为当点击Qualtrics Next Button时我无法运行它,所以我不得不让它在我自己的按钮上运行。
我尝试使用disableNextButton和clickNextButton Qualtrics代码禁用“下一页”按钮,但我不知道在哪里放置它。我可以通过将代码放在addOnload部分中来禁用NextButton,但我似乎无法使clickNextButton在formdata
函数中运行。
任何帮助将不胜感激!我真的不懂JavaScript;我只想尝试进行调查。
答案 0 :(得分:1)
处理此问题的最简单方法实际上只是在文本输入字段更改时调用您的函数。由于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 edditor。它属于addOnReady部分。
Qualtrics.SurveyEngine.addOnReady(()的函数 { function formdata(){ var questionanswer = document.getElementById(&#34; myText&#34;)。value; Qualtrics.SurveyEngine.setEmbeddedData(&#34; Q1input&#34;,questionanswer); }
$(&#39; myText&#39;)。观察(&#39;更改&#39;,formdata()); });
您可以通过在Qualtrics中使用文本输入问题类型,然后使用管道文本将其添加到调查流程中的嵌入数据字段来实现相同的效果。