如何使用jQuery在Qualtrics中获取滑块的值?

我需要在Qualtrics中获取滑块的值以向用户显示(转换)它。

这是我正在处理的页面,因此您可以了解以下内容。 我尝试过很多不同的东西,但都没有。 我的第一个想法当然是:

var val = $j('#QID11~1~toolTip').text(); $j('#value').text(val) 

什么都没有出现。 然后,我尝试使用输入:

 var val = $j("input").attr("value"); $j('#value').text(val); 

(或者, $ j(’#QID11~1~result’)而不是$ j(“input”) ,或.val()而不是.attr(“value”) )同样的事情:没有任何显示。

然而,有趣的是,当我用attr(“ type”)替换attr(“value ”)时 ,显示类型(“hidden”)。 看来,由于在页面首次加载时未设置该值,jQuery无法找到它。

有人能帮我一把吗?

你可以使用这样的prototypejs来做到这一点:

 Qualtrics.SurveyEngine.addOnload(function() { var current = $('current'); var result1 = $(this.questiondId + "~1~result"); new Form.Element.Observer(result1, 0.25, function() { current.update(result1.getValue()); }); }); 

显示当前值的相应问题文本是:

 Current value is: 0% 

更新(按要求进行屏幕截图):

问题w / html 问题JS 问题选项

这是一个替代方案,也使用了jquery上的prototypejs:

 Qualtrics.SurveyEngine.addOnload(function() { var result = $(this.questiondId + '~1~result'); document.observe( 'mousemove', function(){ $('SliderValue').update(result.value); }); }); 

一定要在问题的html中包含以下内容:

 The value is currently: 0 

我觉得你遇到的大部分麻烦都是调用onload而没有方法来观察变化,在加载时,答案没有任何价值,你需要注意这个值会以某种方式改变。 Tom的方法每隔0.25秒轮询一次表单字段,而我的方法在鼠标移动时运行。 这些方法中的任何一种都应该适合您的需求。

问题看起来像波浪号, 如此问题的答案中所述 。 尝试:

 var val = $j('#QID11\\~1\\~toolTip').text(); $j('#value').text(val) 

事实上显然是这样的,但我遇到了同样的问题并且偶然发现了这个问题。 我已经设法找出一些有用的东西,所以我想分享以防万一有人也偶然发现这个页面。 我试图让滑块的值实时显示在页面上,以及100减去滑块的值(从两个“末端”显示滑块,因为我用它作为一种方式在两个人之间分配资金,每个人在滑块的任一端表示;这解释了“endupdate”function)。 上面的post可能很可能错过了

 document.getElementById("result").innerHTML=result; 

用于显示值的部分内容

 0 

在任何需要的问题文本的HTML上。

 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; } });