Qualtrics 多表动态求和问题
Qualtrics Dynamic Sum of Multiple Tables Question
我目前有两个 table,每个都给出了一个计算总数。我目前正在尝试添加一个函数,让我可以看到这两个总数的总和。
Qualtrics.SurveyEngine.addOnload(function()
{
var p1 = "${q://QID4/TotalSum}";
var p2 = "${q://QID10/TotalSum}";
document.getElementById("myBtn").addEventListener("click", function() {
myFunction(p1,p2);
});
function myFunction(a,b) {
var result = Number(a)+Number(b);
document.getElementById("demo").innerHTML = result;
}
});
这样做我可以获得总和值,但是只有在我转到下一页然后返回到此页面之后。有什么方法可以让我不用换页就可以得到总和值吗
我对此很陌生,如有任何帮助,我们将不胜感激。
p1 和 p2 仅在您加载页面时更新。假设 QID4 和 QID10 与 myBtn 在同一页面上,您应该在事件侦听器中获取 p1 和 p2 的值,而不是使用管道值。
确切的代码取决于常量和问题的格式以及页面上的其他内容,但它会类似于:
Qualtrics.SurveyEngine.addOnload(function()
{
var p1 = jQuery(".SumTotal input:first"); //find total elements
var p2 = jQuery(".SumTotal input:last");
myFunction(p1.val(),p2.val()); //initialize total on page load
document.getElementById("myBtn").addEventListener("click", function() {
myFunction(p1.val(),p2.val());
});
function myFunction(a,b) {
var result = Number(a)+Number(b);
document.getElementById("demo").innerHTML = result;
}
});
根据评论进行编辑:
一旦你超过两个,我会使用循环:
Qualtrics.SurveyEngine.addOnload(function()
{
var totals = jQuery(".SumTotal input"); //find total elements
myFunction(totals); //initialize total on page load
document.getElementById("myBtn").addEventListener("click", function() {
myFunction(totals);
});
function myFunction(tots) {
var result = 0;
tots.each(function() { result += Number(this.value); });
document.getElementById("demo").innerHTML = result;
}
});
我目前有两个 table,每个都给出了一个计算总数。我目前正在尝试添加一个函数,让我可以看到这两个总数的总和。
Qualtrics.SurveyEngine.addOnload(function()
{
var p1 = "${q://QID4/TotalSum}";
var p2 = "${q://QID10/TotalSum}";
document.getElementById("myBtn").addEventListener("click", function() {
myFunction(p1,p2);
});
function myFunction(a,b) {
var result = Number(a)+Number(b);
document.getElementById("demo").innerHTML = result;
}
});
这样做我可以获得总和值,但是只有在我转到下一页然后返回到此页面之后。有什么方法可以让我不用换页就可以得到总和值吗
我对此很陌生,如有任何帮助,我们将不胜感激。
p1 和 p2 仅在您加载页面时更新。假设 QID4 和 QID10 与 myBtn 在同一页面上,您应该在事件侦听器中获取 p1 和 p2 的值,而不是使用管道值。
确切的代码取决于常量和问题的格式以及页面上的其他内容,但它会类似于:
Qualtrics.SurveyEngine.addOnload(function()
{
var p1 = jQuery(".SumTotal input:first"); //find total elements
var p2 = jQuery(".SumTotal input:last");
myFunction(p1.val(),p2.val()); //initialize total on page load
document.getElementById("myBtn").addEventListener("click", function() {
myFunction(p1.val(),p2.val());
});
function myFunction(a,b) {
var result = Number(a)+Number(b);
document.getElementById("demo").innerHTML = result;
}
});
根据评论进行编辑:
一旦你超过两个,我会使用循环:
Qualtrics.SurveyEngine.addOnload(function()
{
var totals = jQuery(".SumTotal input"); //find total elements
myFunction(totals); //initialize total on page load
document.getElementById("myBtn").addEventListener("click", function() {
myFunction(totals);
});
function myFunction(tots) {
var result = 0;
tots.each(function() { result += Number(this.value); });
document.getElementById("demo").innerHTML = result;
}
});