Toggle menu
862
3.8K
30.2K
279.1K
Catglobe Wiki
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Prioritize sub questions in a text grid question: Difference between revisions

From Catglobe Wiki
New page: ==Challenge== In order to let the respondent prioritize a list of products<br/> As a questionnaire creator<br/> I want to allow him to enter only values in a list of priorities for each pr...
 
Cg van (talk | contribs)
No edit summary
Line 1: Line 1:
==Challenge==
==Challenge==
In order to let the respondent prioritize a list of products<br/>
In order to let the respondent prioritize a list of products
As a questionnaire creator<br/>
 
I want to allow him to enter only values in a list of priorities for each product (one priority is only used once)<br/>
As a questionnaire creator
'''Example'''<br/>
 
[[Image:Prioritize_products.png]]
I want to allow him to enter only values in a list of priorities for each product (one priority is only used once)
 
'''Example'''
<br/>
[[Image:PrioritizeSQInTextGrid.jpg]]
==Solution==
*Add a Text grid question to Questionnaire editor like below
*Go to menu Properties -> Question scripts -> Java script tab -> Input script
[[Image:PrioritizeSQInTextGrid Code.jpg]]
==Code==
==Code==
<source lang=javascript>
<source lang=javascript>
Line 64: Line 72:
questioncheck = extendedQuestionCheck;
questioncheck = extendedQuestionCheck;
</source>
</source>
==Source==
Questionnaire Resource Id on cg site: 159730

Revision as of 10:46, 2 February 2012

Challenge

In order to let the respondent prioritize a list of products

As a questionnaire creator

I want to allow him to enter only values in a list of priorities for each product (one priority is only used once)

Example

Solution

  • Add a Text grid question to Questionnaire editor like below
  • Go to menu Properties -> Question scripts -> Java script tab -> Input script

Code

function isNumeric_LessThan6(sText)
{
	var ValidChars = "12345";
	if (sText.length != 1)
		return false;
	
	if (ValidChars.indexOf(sText) == -1) 
		return false; 
	
	return true;
}

var normalQuestionCheck = questioncheck;

function extendedQuestionCheck()
{
	var valid = normalQuestionCheck();
	if (!valid)
		return false;
		
	var usedNumbers = "";
	ErrorMessages.getInstance().clearErrorMessages();
	var msg = "";
	
	$("input:text").each(
		function(i)
		{
			if ($(this).attr("name").indexOf("QUESTION.") == 0)
			{
				//check the value
				var v = $(this).val();
				if (!isNumeric_LessThan6(v))
				{
					msg = "Only 1-5 are allowed as input";
					valid = false;
					return;
				}
				
				if (usedNumbers.indexOf(v) != -1)
				{
					valid = false;
					msg = "One value can only be specified for one row";
					return;
				}				
				
				usedNumbers = usedNumbers + v;
			}
		}
	);
	if (!valid)
		ErrorMessages.getInstance().showErrorMessage(msg); 
		
	return valid;
}

questioncheck = extendedQuestionCheck;

Source

Questionnaire Resource Id on cg site: 159730