Both horizontal and vertical single grid

From Catglobe Wiki
Revision as of 08:40, 26 February 2009 by Catglobe (talk | contribs) (New page: Chalenge : There are a single grid question . Respondents should prioritize statements (sub questions) . <br>Example : I have a list of trade-mark and want the user to prio...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Chalenge :

There are a single grid question . Respondents should prioritize statements (sub questions) .


Example :

I have a list of trade-mark and want the user to prioritize those list :

Dell

Apple

IBM

FPT Elead

Example 1.JPG


Solution :

Use single grid question (statements as subquestion and ranks as answer option )


Code

The script makes a single grid question function as a single grid both horizontally and vertically.

option.prototype.getHTML = function(ltype) {

var stmp = "";

if(this.visible) {

switch(ltype) {

case 2:

stmp += "<input type=\"radio\" ";

stmp += "name=\""+this.label+"\" ";

stmp += "value=\""+this.value+"\" ";

if(this.checked) stmp += "checked ";

if(this.disabled) stmp += "disabled ";

stmp += "onclick=\"myoptclick('"+this.label+"',"+this.index+",false);\">";

return "<td valign=\"center\" align=\""+this.align+"\">"+stmp+"</td>";;

break;

}

}

}

quest.next = nextTest;

function nextTest() {

// initialise check array

var arrIndexUsed = new Array();

for (i=0;i<quest.questions[0].options.length;i++) {

arrIndexUsed[i] = false;

}

// loop through options and check for double used options

for (i=0;i<quest.questions.length;i++) {

for (j=0;j<quest.questions[i].options.length;j++) {

if (quest.questions[i].options[j].checked) {

arrIndexUsed[j] = true;

}

}

}

// loop through possible answer options and check that all are used

for (i=0;i<arrIndexUsed.length;i++) {

if ( ! arrIndexUsed[i] ) {

alert('All options must used');

return false;

}

}

buttonsStatus(true);

document["query"]["dir"].value = "next";

return true;

}

function myoptclick(slbl, lidx, blnk) {

optclick(slbl, lidx, blnk);

for (i=0;i<quest.questions.length;i++) {

if ( quest.questions[i].label != slbl ) {

quest.questions[i].options[lidx].checked = false;

o1 = document["query"][quest.questions[i].label];

cb = o1;

cb[lidx].checked = false;

}

else {

for (j=0;j<quest.questions[i].options.length;j++) {

quest.questions[i].options[j].checked = false;

}

quest.questions[i].options[lidx].checked = true;

o1 = document["query"][quest.questions[i].label];

cb = o1;

cb[lidx].checked = true;

}

}

}