Toggle menu
874
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.

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

From Catglobe Wiki

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.

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
 * @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