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

Show open textbox in a grid question: Difference between revisions

From Catglobe Wiki
Line 5: Line 5:
== Solution ==
== Solution ==


Assuming that I have a single grid question labeled Q1, and I need to show the open text box in 3rd sub question (0-index).
Assuming that I have a single grid question labeled Q1, and I need to show the open text box in 3rd sub question (0-index)
 
Make the "Other" sub question NOT required


Create a dummy text question labeled Q1_Other
Create a dummy text question labeled Q1_Other
Line 11: Line 13:
Add a piece of javascript to Q1
Add a piece of javascript to Q1


<br>
<source lang=javascript>
<source lang=javascript>
var errorMessage = "Please specify the open text";
var errorMessage = "Please specify the open text";
Line 37: Line 38:
   return true;
   return true;
}
}
</source>
Add a CGScript to Q1_Other to remove double quotes
<source lang=csharp>
if (Q1_Other == empty)
return;
Q1_Other = stringReplace(Q1_Other, "\"", "'");
</source>
</source>

Revision as of 04:10, 5 August 2010

Introduction

In order to let the respondent specify an open text for Other option
As a questionnaire creator
I want to show a textbox next to "Other" text in a grid question

Example

Solution

Assuming that I have a single grid question labeled Q1, and I need to show the open text box in 3rd sub question (0-index)

Make the "Other" sub question NOT required

Create a dummy text question labeled Q1_Other

Add a piece of javascript to Q1

var errorMessage = "Please specify the open text";
var subQuestionIndex = 3;//0-based

quest.onInit = function()
{
   $("#grid_subquestion_text_"+ (subQuestionIndex+1)).append($("<input name='QUESTION.Q1_Other'>").val("{{Q1_Other}}"));
}

var oldCheck = questioncheck;
questioncheck = function()
{
   if (!oldCheck())
   return false;
   
   if ($("input:radio[name='QUESTION.Q1."+ subQuestionIndex + "'][checked=true]").length != 0)
   {
      if ($("input[name='QUESTION.Q1_Other']").val() == "")
      {      
         ErrorMessages.getInstance().showErrorMessage(errorMessage);
         return false;
      }
   }
   return true;
}

Add a CGScript to Q1_Other to remove double quotes

if (Q1_Other == empty)
return;
Q1_Other = stringReplace(Q1_Other, "\"", "'");