Challenge
In order to validate the inputs of a text grid question
As a questionnaire creator
I want to check if the sum of all values equals to a specific value
Solution
- Create a text-grid question, accept the numberical for sub question
- Add the below script to that question
Code
var expectedTotal = 100;
function specialQuestionCheck()
{
var msg = "";
var val = 0;
for(i = 0; i < quest.questions.length; i++)
{
var tmpVal = document["query"][quest.questions[i].label].value;
if(tmpVal == "")
{
// NOPI
}
else if(isNaN(tmpVal))
{
msg += "- Angiv venligst et tal\n";
}
else if (tmpVal<0 || tmpVal>100)
{
msg += "Værdier skal være fra 0 til 100";
}
else
{
val += parseFloat(tmpVal);
}
}
if(msg == "")
{
if(val == expectedTotal)
{
return true;
}
else
{
alert("Værdierne skal summe til "+ expectedTotal +" - nuværende sum: " + val);
return false;
}
}
else
{
alert("Følgende fejl opstod:\n"+msg);
return false;
}
return false;
}
var defaultQuestionCheck = questioncheck;
function newGoNext()
{
document["query"]["dir"].value = "next";
if(defaultQuestionCheck())
return specialQuestionCheck();
else
return false;
}
quest.next = newGoNext;
Source
Questionnaire Resource Id on cg.catglobe.com site: 164079 (Question: Q11_Script_for_making_a_text_grid_numerical_summin)