如何使用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%
更新(按要求进行屏幕截图):
这是一个替代方案,也使用了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; } });