Toggle menu
875
3.8K
30.2K
279.1K
Catglobe Wiki
Toggle preferences menu
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