Adding multiple choice subclass of scale type questions, only difference is answer text location (above button).
This commit is contained in:
parent
29d4017b41
commit
ffc316e2a0
4 changed files with 85 additions and 19 deletions
|
|
@ -4,7 +4,8 @@ if (typeof Survey == "undefined") {
|
|||
|
||||
Survey.Form = new function() {
|
||||
|
||||
var multipleChoice = {'Multiple Choice':1,'Gender':1,'Yes/No':1,'True/False':1,'Agree/Disagree':1,'Oppose/Support':1,'Importance':1,
|
||||
var multipleChoice = {'Multiple Choice':1,'Gender':1,'Yes/No':1,'True/False':1};
|
||||
var scale = {'Agree/Disagree':1,'Oppose/Support':1,'Importance':1,
|
||||
'Likelihood':1,'Certainty':1,'Satisfaction':1,'Confidence':1,'Effectiveness':1,'Concern':1,'Risk':1,'Threat':1,'Security':1,'Ideology':1,
|
||||
'Race':1,'Party':1,'Education':1};
|
||||
var text = {'Text':1, 'Email':1, 'Phone Number':1, 'Text Date':1, 'Currency':1};
|
||||
|
|
@ -14,12 +15,13 @@ Survey.Form = new function() {
|
|||
var hidden = {'Hidden':1};
|
||||
|
||||
var hasFile;
|
||||
var verb = 0;
|
||||
var lastSection = 'first';
|
||||
|
||||
this.displayQuestions = function(params){
|
||||
|
||||
var qs = params.questions;
|
||||
var s = params.section;
|
||||
|
||||
|
||||
//What to show and where
|
||||
document.getElementById('survey').innerHTML = params.html;
|
||||
|
|
@ -29,14 +31,16 @@ document.getElementById('survey').appendChild(te);
|
|||
YAHOO.util.Event.addListener("testB", "click", function(){Survey.Comm.callServer('','loadQuestions');});
|
||||
|
||||
if(qs[0] != undefined){
|
||||
if(qs[0].sequenceNumber == '1' || s.everyPageTitle > 0){
|
||||
if(lastSection != s.Survey_sectionId || s.everyPageTitle > 0){
|
||||
document.getElementById('headertitle').style.display='block';
|
||||
}
|
||||
if(qs[0].sequenceNumber == '1' || s.everyPageText > 0){
|
||||
if(lastSection != s.Survey_sectionId || s.everyPageText > 0){
|
||||
//if(qs[0].sequenceNumber == '1' || s.everyPageText > 0){
|
||||
document.getElementById('headertext').style.display = 'block';
|
||||
}
|
||||
|
||||
if(qs[0].sequenceNumber == '1' && s.questionsOnSectionPage != '1'){
|
||||
if((lastSection != s.Survey_sectionId && lastSection != 'first') || s.questionsOnSectionPage != '1'){
|
||||
// if(qs[0].sequenceNumber == '1' && s.questionsOnSectionPage != '1'){
|
||||
var span = document.createElement("div");
|
||||
span.innerHTML = "<input type=button id='showQuestionsButton' value='Continue'>";
|
||||
span.style.display = 'block';
|
||||
|
|
@ -56,6 +60,7 @@ YAHOO.util.Event.addListener("testB", "click", function(){Survey.Comm.callServer
|
|||
}else{
|
||||
document.getElementById('questions').style.display='inline';
|
||||
}
|
||||
lastSection = s.Survey_sectionId;
|
||||
}else{
|
||||
document.getElementById('headertitle').style.display='block';
|
||||
document.getElementById('headertext').style.display = 'block';
|
||||
|
|
@ -79,14 +84,28 @@ YAHOO.util.Event.addListener("testB", "click", function(){Survey.Comm.callServer
|
|||
html += "<hr>";
|
||||
html += "<div class='question'>Q"+q.sequenceNumber+": "+q.questionText+"</div>";
|
||||
|
||||
if(multipleChoice[q.questionType]){
|
||||
var butts = new Array();
|
||||
if(multipleChoice[q.questionType] || scale[q.questionType]){
|
||||
var butts = new Array();
|
||||
verb = 0;
|
||||
for(var x = 0; x < q.answers.length; x++){
|
||||
var a = q.answers[x];
|
||||
var b = new YAHOO.widget.Button({ type: "checkbox", label: a.answerText, id: a.Survey_answerId+'button', name: a.Survey_answerId+'button',
|
||||
value: a.Survey_answerId,
|
||||
container: a.Survey_answerId+"container", checked: false });
|
||||
var b;
|
||||
if(scale[q.questionType]){
|
||||
b = new YAHOO.widget.Button({ type: "checkbox", label: a.recordedAnswer, id: a.Survey_answerId+'button', name: a.Survey_answerId+'button',
|
||||
value: a.Survey_answerId,
|
||||
container: a.Survey_answerId+"container", checked: false });
|
||||
b.label=a.recordedAnswer;
|
||||
}else{
|
||||
b = new YAHOO.widget.Button({ type: "checkbox", label: a.answerText, id: a.Survey_answerId+'button', name: a.Survey_answerId+'button',
|
||||
value: a.Survey_answerId,
|
||||
container: a.Survey_answerId+"container", checked: false });
|
||||
b.label=a.answerText;
|
||||
}
|
||||
b.setStyle('text-align','center');
|
||||
b.on("click", this.buttonChanged,[b,a.Survey_questionId,q.maxAnswers,butts,qs.length]);
|
||||
if(a.verbatim == 1){
|
||||
verb = 1;
|
||||
}
|
||||
b.hid = a.Survey_answerId;
|
||||
butts.push(b);
|
||||
}
|
||||
|
|
@ -303,7 +322,8 @@ YAHOO.util.Event.addListener("testB", "click", function(){Survey.Comm.callServer
|
|||
document.getElementById(qid+'max').innerHTML = parseInt(max+1);
|
||||
document.getElementById(b.hid).value = 1;
|
||||
}
|
||||
if(qsize == 1){
|
||||
//console.log('qsize '+qsize+' verb '+verb);
|
||||
if(qsize == 1 && verb == 0){
|
||||
Survey.Form.formsubmit();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,11 +33,13 @@ Survey.QuestionTemplate = new function(){
|
|||
html = html+ this.makeRadio('randomizeAnswers',[{text:'Yes',value:1},{text:'No',value:0}],params.randomizeAnswers);
|
||||
html = html + "<p>Previous answers to display:<textarea name='previousAnswerWords' cols=4 rows=2>"+params.previousAnswerWords+"</textarea>";
|
||||
html = html + "<p>Question type:";
|
||||
|
||||
var questions = ['Multiple Choice','Gender','Yes/No','True/False','Agree/Disagree','Oppose/Support','Importance','Likelihood','Certainty','Satisfaction',
|
||||
'Confidence','Effectiveness','Concern','Risk','Threat','Security','Ideology','Race','Party','Education',
|
||||
'Text', 'Email', 'Phone Number', 'Text Date', 'Currency',
|
||||
'Slider','Dual Slider - Range','Multi Slider - Allocate', 'Date','Date Range', 'File Upload','Hidden'];
|
||||
var questions = ['Agree/Disagree','Certainty','Concern','Confidence','Currency','Date','Date Range','Dual Slider - Range','Education','Effectiveness',
|
||||
'Email','File Upload','Gender','Hidden','Ideology','Importance','Likelihood','Multi Slider - Allocate','Multiple Choice','Oppose/Support',
|
||||
'Party','Phone Number','Race','Risk','Satisfaction','Security','Slider','Text','Text Date','Threat','True/False','Yes/No'];
|
||||
// var questions = ['Multiple Choice','Gender','Yes/No','True/False','Agree/Disagree','Oppose/Support','Importance','Likelihood','Certainty','Satisfaction',
|
||||
// 'Confidence','Effectiveness','Concern','Risk','Threat','Security','Ideology','Race','Party','Education',
|
||||
// 'Text', 'Email', 'Phone Number', 'Text Date', 'Currency',
|
||||
// 'Slider','Dual Slider - Range','Multi Slider - Allocate', 'Date','Date Range', 'File Upload','Hidden'];
|
||||
|
||||
html = html + this.makeMenu('questionType',questions,questions,params.questionType);
|
||||
|
||||
|
|
|
|||
|
|
@ -31,4 +31,10 @@ div.slider-max-thumb {
|
|||
#questions {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.yui-button{
|
||||
text-align: center;
|
||||
}
|
||||
.yui-button button{
|
||||
text-align: center;
|
||||
min-width: 50px;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,8 +7,6 @@
|
|||
|
||||
<form name='surveyForm'>
|
||||
|
||||
<input type='hidden' name='section' value='<tmpl_var name='Survey_sectionId'>'>
|
||||
|
||||
<tmpl_loop name='questions'>
|
||||
<hr>
|
||||
<div class='question'>Q<tmpl_var name='sequenceNumber'>: <tmpl_var name='questionText'></div>
|
||||
|
|
@ -36,6 +34,12 @@
|
|||
</tmpl_loop>
|
||||
</tmpl_if>
|
||||
|
||||
<tmpl_if name='hidden'>
|
||||
<tmpl_loop name='answers'>
|
||||
<input type='hidden' name='<tmpl_var name="Survey_answerId">' value='<tmpl_var name='recordedAnswer'>'>
|
||||
</tmpl_loop>
|
||||
</tmpl_if>
|
||||
|
||||
<tmpl_if name='text'>
|
||||
<tmpl_loop name=answers>
|
||||
<tmpl_var name='verts'>
|
||||
|
|
@ -49,6 +53,33 @@
|
|||
</tmpl_loop>
|
||||
</tmpl_if>
|
||||
|
||||
|
||||
<tmpl_if name='scale'>
|
||||
<table class="scale">
|
||||
<tr>
|
||||
<tmpl_loop name=answers>
|
||||
<th>
|
||||
<tmpl_var name='answerText'>
|
||||
</th>
|
||||
</tmpl_loop>
|
||||
</tr>
|
||||
<tr>
|
||||
<tmpl_loop name=answers>
|
||||
<td align="center" width="2em">
|
||||
<span class=answer id="<tmpl_var name='Survey_answerId'>container"></span>
|
||||
<tmpl_if name='verbatim'>
|
||||
<span><input type=text name='<tmpl_var name='Survey_answerId'>verbatim'></span>
|
||||
</tmpl_if>
|
||||
</td>
|
||||
</tmpl_loop>
|
||||
</tr>
|
||||
</table>
|
||||
<tmpl_loop name=answers>
|
||||
<input type=hidden name=<tmpl_var name='Survey_answerId'> id=<tmpl_var name='Survey_answerId'>>
|
||||
</tmpl_loop>
|
||||
</tmpl_if>
|
||||
|
||||
|
||||
<tmpl_if name='multipleChoice'>
|
||||
<tmpl_loop name=answers>
|
||||
<tmpl_var name='verts'>
|
||||
|
|
@ -140,6 +171,11 @@
|
|||
</tmpl_if>
|
||||
</tmpl_if>
|
||||
|
||||
<tmpl_if name='allowComment'>
|
||||
<p>Comment: <input type='text' name='<tmpl_var name='Survey_questionId'>comment'></p>
|
||||
</tmpl_if>
|
||||
|
||||
|
||||
</tmpl_loop>
|
||||
<hr><input type=button id=submitbutton value=submitbutton></input>
|
||||
</form>
|
||||
|
|
@ -149,3 +185,5 @@
|
|||
<div id="footer"></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue