Difference between revisions of "Both horizontal and vertical single grid"
(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...) |
|||
Line 1: | Line 1: | ||
− | Chalenge : | + | == Chalenge : == |
There are a single grid question . Respondents should prioritize statements (sub questions) . | There are a single grid question . Respondents should prioritize statements (sub questions) . |
Revision as of 09:36, 2 March 2009
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
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;
}
}
}