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;
}
});
РЕДАКТИРОВАТЬ НА ОСНОВЕ КОММЕНТАРИЙ:
Как только вы получите выше двух, я бы использовал al oop:
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;
}
});