Check whether values of open parts of a close question are positive numbers or not

From Catglobe Wiki
Revision as of 04:39, 29 August 2013 by Tungocman (talk | contribs)
Jump to: navigation, search

Check whether values of open parts of a close question are positive numbers or not

Description

This solution will check whether values of open parts of a close question (single question type or multi question type) are positive numbers or not.

OpenPart closeQuestion.jpg

How To Use


  • Edit the qName and openPartIndexes values in the below script.
/********************************************************************************************
 *	CHECK WHETHER VALUES OF OPEN PARTS OF A CLOSE QUESTION ARE POSITIVE NUMBERS OR NOT
 ********************************************************************************************/
/**
 *	Check whether values of open parts of a close question are positive numbers or not
 *	@param		{String}	qName			The name of the close question (case sensitive)
 *	@param		{Array}		openPartIndexes		The indexes of the open parts
 *	@return		{Boolean}				return true if valid, false if invalid		 
 *      Ex: validate_Open_Parts_Of_Close_Question('Sp7', [2,3]);  // Means check whether values of open parts of answer options 2,3 of the close 
 *                                                                // question Sp7 are positive numbers or not
 */				 
function validate_Open_Parts_Of_Close_Question(qName, openPartIndexes) {
	function isPositiveNumber(n) {
	        var isNo = !isNaN(parseFloat(n)) && isFinite(n);
		return isNo && (Number(n) >= 0) ? true : false;		
	}
	
	if(!questioncheck())	
		return false;
		
	var isValid = true;
	$.each(openPartIndexes, function(i, opIndex)  {	
		var opTxtBoxName = 'QUESTION.' + qName + '.Open.' + opIndex;		
		var opValue = $('input[type=text][name=' +  opTxtBoxName + ']').val();
		if(opValue !== '' && !isPositiveNumber(opValue)) {
			isValid = false;
			return false; // break this each loop
		}	
	});
		
	if(!isValid) {
		alert('Værdien skal være et tal.');
		return false;
	}
	
	return true;
}

quest.next = function() {
	// Valiate the open parts of close question to make sure their values are positive numbers
	var qName = 'Sp7';          //  Change your close question name here
	var openPartIndexes = [2];  // Set the open part indexes which want to validate values here
	var isValid = validate_Open_Parts_Of_Close_Question(qName, openPartIndexes);
	if(!isValid)
		return false;
		
	document["query"]["dir"].value = "next";	
	return true;	
};


  • Put the script to below location of your close question in the questionnaire editor

Question Javascript Property.jpg