Here are some common HTML/Java codes to use in your survey building. To use these codes click on the purple drop down to the left of a question. Then click on “add java script”. Replace the part that says” /*Place Your Javascript Here*/” with the codes below. Some codes are to be used in the source view or answer choices. Again these codes should be pasted into your question when you have accessed the “code view” in the upper right of the questions text box or if you’re in the rich text editor click on the “source” button in the upper right corner of the rich text editor. Below you will find 18 codes. The blue text specifies where the code should be placed (java script editor or source view). To customize the codes you will need to change the red text in the codes below.
1. Append text to the right of text entry choices (ex. TE Form) This allows you to ask questions such as "Approx how many hours a day do you watch TV? [TEXT ENTRY SHORT] hrs" (Java script editor)
var questionId = this.questionId;
var choiceInputs = $$('#'+this.questionId + '
.ChoiceStructure input');
for (var i=0; i < choiceInputs.length; i++)
{var choiceInput = choiceInputs[i]; try
{if (choiceInput &&
choiceInput.parentNode)
{choiceInput.parentNode.appendChild(QBuilder('span',{},'hrs'));
}
}
catch(e)
{
}
}
2. Puts a calendar into the question
(This code only works when placed in the source view. Or use the question saved in the Qualtrics Library. )
<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.7.0/build/calendar/assets/skins/sam/calendar.css">
<script type="text/javascript" src="http://yui.yahooapis.com/2.7.0/build/yahoo-dom-event/yahoo-dom-event.js"></script>
<script type="text/javascript" src="http://yui.yahooapis.com/2.7.0/build/calendar/calendar-min.js"></script>
<script>
Qualtrics.SurveyEngine.addOnload(function ()
{
var qid = this.questionId;
var calid = qid + '_cal';
var y = QBuilder('div');
$(y).setStyle({clear:'both'});
var d = QBuilder('div',{className:'yui-skin-sam'},[
QBuilder('div', {id:calid}),
y
]);
var c = this.questionContainer;
c = $(c).down('.QuestionText');
c.appendChild(d);
var cal1 = new YAHOO.widget.Calendar(calid);
cal1.render();
var input = $('QR~' + qid);
$(input).setStyle({marginTop: '20px',width: '150px'});
var p =$(input).up();
var x = QBuilder('div');
$(x).setStyle({clear:'both'});
p.insert(x,{position:'before'});
cal1.selectEvent.subscribe(function(e,dates){
var date = dates[0][0];
input.value = date[1] +'-'+date[2]+'-'+date[0];
})
});
</script>
3. This code kicks someone on to the next page after a certain time has passed by (The time is displayed in red and is in seconds) (Java script editor)
var displayTime
= 2;
if($('NextButton'))$('NextButton').hide();
new PeriodicalExecuter(function(){
if($('NextButton')){$('NextButton').show();
$('NextButton').click();
}
},displayTime);
4. Custom
Error Message (Java script editor)
Note: this does not replace the regular message - if you put it in the question
text it will add your text above the question that was causing the problem.
var customErrorMessage = 'Write your
message here';
var question = $(this.questionId);
if (question)
{
question.cleanWhitespace();
$(question).select('.ValidationError').each(function(s){
if (s.innerHTML != '')
{
s.innerHTML = customErrorMessage;
}
});
}
5. Having Multiple Choice Options Preselected (Java script editor)
Here's
2 options. For the first, the only trick being you have to know your choice
IDs. This code below assumes you have 4 choices, with internal IDs from 1 - 4.
In the brackets put the answer choice you want pre-selected (Enter admin mode
to make sure if the IDs).
var questionId = this.questionId;
var choiceIds = [1];
for (var i=0; i < choiceIds.length; i++)
{
var choiceID = choiceIds[i];
try
{
this.setChoiceValue(choiceID,true);
}
catch(e)
{
}
}
ALTERNATIVELY,
you can use this code, assuming it's a multiple choice question, that grabs the
choices dynamically, but you cannot have full control in cases where you want
to select say half of them by default. This will automatically check all the
options.
var questionId = this.questionId;
var choiceInputs = $$('#'+this.questionId + '
.ChoiceStructure input');
for (var i=0; i < choiceInputs.length; i++)
{
var choiceInput = choiceInputs[i];
try
{
choiceInput.checked = true;
}
catch(e)
{
}
}
6. Customizes
the next button text on any page in your survey. Helpful for making a
"different first page" or final submit button. (Java
script editor)
var newName = 'Submit'; //What you want your button to say
if ($('NextButton').nodeName == 'INPUT')
{
$('NextButton').setValue(newName);
}
else // next button is probably a button
{
$('NextButton').innerHTML = newName;
}
7.
Select all choices by default (start with all
choices selected) (Java script editor)
Checks all choices when question appears, and the user has to uncheck all
choices they want unchecked. This code assumes a multiple choice question.
var questionId = this.questionId;
var choiceInputs = $$('#'+this.questionId + ' .ChoiceStructure input');
for (var i=0; i < choiceInputs.length; i++)
{
var choiceInput = choiceInputs[i];
try
{
choiceInput.checked = true;
}
catch(e)
{
}
}
8.
This code allows them to click on an image in the answer and a pop up
window with a redirect will open. Change the pop up link and the image source
link. The image will be from your library and you can find the source link by
putting the image in while in the rich text editor and then using the “source”
button to get the source link. (Place this code in the
source view)
<a href="http://www.google.com"_blank" onclick="window.open(this.href,'','resizable=no,location=no,menubar=no,scrollbars=no,status=no,toolbar=no,fullscreen=no,dependent=no,status'); return false"><img src="Image source goes here" width="50" height="50" border="0"> </a>
9. Hide the Next button until time elapses (time is in seconds) (Java script editor)
var
displayTime = 10;
if($('NextButton'))$('NextButton').hide();
new PeriodicalExecuter(function(){
if($('NextButton')){$('NextButton').show();$('NextButton');}
},displayTime);
10. Force to next page, but user can click button to move earlier (Java script editor)
var
displayTime = 2;
new PeriodicalExecuter(function(){
if($('NextButton'))$('NextButton').click();
},displayTime);
11. Click
on image, and text appears below (Place in source view or
answer choice)
<img title="image title" onclick="$('divID').toggle();"
alt="" src="Image source goes here">
<div id="divID" style="display: none;"> insert
your text here </div>
<br>
12. Text
box when mouse hovers over picture (Place in answer choice or
source view)
Insert Displayed text here <br><img src="image
source goes here" onclick="return false;" title="Insert
hover text here"> </a>
13.
Open link in a new window (Place in source view or answer choice)
<a target="blank" href="http://url of website">link text</a>
14. Shows an image in the question for a specified duration (in milliseconds). The question remains, but the image is hidden after the time elapses. Need to use an image from the web. (Java script editor)
var imgURL = "http://survey.qualtrics.com/CP/Graphic.php?IM=IM_23twCJSuhD5Nmpm&SR=Prod";//replace this with your image's URL
var time = 2500; //time in milliseconds
var c = this.questionContainer;
var img = QBuilder('img',{src:imgURL});
var ic = QBuilder('div',{},[img]);
$(c).appendChild(ic);
(function(){
$(img).hide();
}).delay(time/1000);
15.
Shows text for a specified duration (in
milliseconds). The question remains, but the text is hidden after the time
elapses. The text appears below the answers (Java script editor)
//flash
single text for specified duration
var text = "Write text to be displayed
here";
var time = 1500; //time in milliseconds
var c = this.questionContainer;
var tc = QBuilder('span',{},text);
$(tc).setStyle({color:'red',fontSize:'24pt'});
//optional to change text style
var ic = QBuilder('div',{},[tc]);
$(c).appendChild(ic);
(function(){
$(ic).clonePosition(tc); //comment this line out to
remove the white space left after the text is hidden
$(tc).hide();
}).delay(time/1000);
16. Default answer selected on a dropdown. (Java script editor)
if($('QID17'))
{
$$('#QID17 select').each(function(s){
s.value = (s[s.length-2].value);
})
}
*QID - insert the question ID# (Most likely you will have to switch to the
classic editor to find the QID. The QID may be different than the one to the
left of your question in the quick survey builder.)
*s.length is the position of the choice (counting from the bottom)
17. Puts in a scroll box in a question (Put this in the source view)
<div style="width: 700px; height: 250px; overflow: auto">
This is the text that would show up in the really long question text...
</div>
18. Sound clips (Place this in the source view or question answer)
<span class='hidden'>Song 2</span> <embed src="http://www.freeaudioclips.com/music1/Disco_Dance/tribaldance.mid" loop="true" autoplay="false" width="250" height="16"></embed>
19. Make text box smaller (Place this in the code view of question)
<style type="text/css">
.Skin .TE textarea, .Skin .TE input {
width:55px;
}
</style>
20. Generic codes
<br> Creates a line break
<b> _____</b> Bolds the text in between
<u>_____</u> Underlines the text
<i>______</i> italicizes the text
puts in a space
21. Change Text Entry Box
Please insert it into the code
view. You may want to edit the numbers to format the box to the correct size.
<style>
.Skin .QuestionBody .TextEntryBox {
height:10em;
width:38em;
</style>
22. Timed Page, skip forward
You can use one of the codes below
to automatically jump a respondent on to another page after a specified amount
of time. Just follow the instructions below.
1. Change the number in any of the scripts below to control how long the delay
is for. For example:
"this.clickNextButton().delay(30);" in the script below (time in
seconds).
2. Copy and paste that code into the Javascript Editor (purple gear button
-> Add Javascript) of the question where you want this to occur. (Note: This
only needs to be entered on one question on the page where you want it to
automatically progress to the next page.)
To hide next button and automatically move
respondent on to next page.
this.hideNextButton();
this.clickNextButton.delay(30);
To just advance with no hidden button.
this.showNextButton();
this.clickNextButton.delay(30);
To hide the button for a specified time without automatically progressing to
the next page.
this.hideNextButton();
this.showNextButton.delay(30);
To make page wider (specially for grids)
In code view (Change 900px as required)
<style>.Skin #SkinContent {
width: 900px;
} </style>
To hide Next button and Back button
In JavaScript
this.hideNextButton();
this.hidePreviousButton();
CUSTOM “SUBMIT” BUTTON
Type the following in the last question – HTML view.
<script type="text/javascript">
Event.observe(window, 'load', function(){
var newName = 'Submit';
if
($('NextButton').nodeName == 'INPUT')
{
$('NextButton').setValue(newName);
}
else
if ($('NextButtonText').nodeName == 'SPAN')
{
$('NextButtonText').innerHTML = newName;
}
else // next button is probably a button
{
$('NextButton').innerHTML = newName;
}
});
</script>