Difference between revisions of "Hide Next button in n seconds"

From Catglobe Wiki
Jump to: navigation, search
 
(5 intermediate revisions by one other user not shown)
Line 1: Line 1:
 
== Challenge  ==
 
== Challenge  ==
  
In order to not allow respondent click on the Next button in a period of t<br>As a questionnaire creator<br>I want to hide the Next button in some seconds&nbsp;  
+
In order to not allow respondent click on the Next button in a period of time
 +
 
 +
As a questionnaire creator
 +
 
 +
I want to hide the Next button in some seconds&nbsp;
 +
 
 +
== Example ==
 +
[[Image:HideNextButton1.jpg]]
 +
<br>
 +
[[Image:HideNextButton2.jpg]]
  
 
== Solution  ==
 
== Solution  ==
  
*In questionnaire template editor, choose the&nbsp;question&nbsp;I want to hide the Next button,&nbsp;and then&nbsp;go to the Properties - Edit question properties - Language dependent - Select javascript property&nbsp;
+
*In questionnaire template editor, choose the question I want to hide the Next button and then go to the Properties - Edit question properties - Language dependent - Select javascript property
*Create a onInit() function.  
+
*Override quest.onInit function.  
*In that function, check if the Next button existed.&nbsp;
+
*In that function, check if the Next button exists.  
*If it doesn't exist, do nothing, else disable the Next button, set the time&nbsp;out to number of seconds&nbsp;I want to hide the&nbsp;button, then show the button again.&nbsp;&nbsp;
+
*If it doesn't exist, do nothing, else disable the Next button, set the time out to number of seconds I want to hide the button, then show the button again.
  
 +
[[Image:HideNextButton Code.jpg]]
 
== Code  ==
 
== Code  ==
 
+
<source lang="javascript">
<onlyinclude>quest.onInit = function()
+
quest.onInit = function()
{
 
var secsTimeout = 10;
 
 
 
if ( !document.getElementsByName('next') || document.getElementsByName('next').length == 0 )
 
{
 
// next button not available
 
return;
 
}
 
else
 
 
{
 
{
document.getElementsByName('next')[0].style.display='none';
+
var secsTimeout = 10;
 +
if ( !document.getElementsByName('next') || document.getElementsByName('next').length == 0 )
 +
// next button not available
 +
return;
 +
document.getElementsByName('next')[0].style.display='none';
 +
setTimeout("document.getElementsByName('next')[0].style.display='';", secsTimeout*1000);
 
}  
 
}  
 +
</source>
  
var timeout = setTimeout("document.getElementsByName('next')[0].style.display=;", secsTimeout*1000);
+
== Source ==
 
+
Questionnaire Resource Id on cg site: 159730
}</onlyinclude>
 

Latest revision as of 05:58, 2 February 2012

Challenge

In order to not allow respondent click on the Next button in a period of time

As a questionnaire creator

I want to hide the Next button in some seconds 

Example

HideNextButton1.jpg
HideNextButton2.jpg

Solution

  • In questionnaire template editor, choose the question I want to hide the Next button and then go to the Properties - Edit question properties - Language dependent - Select javascript property
  • Override quest.onInit function.
  • In that function, check if the Next button exists.
  • If it doesn't exist, do nothing, else disable the Next button, set the time out to number of seconds I want to hide the button, then show the button again.

HideNextButton Code.jpg

Code

quest.onInit = function()
{
	var secsTimeout = 10;
	if ( !document.getElementsByName('next') || document.getElementsByName('next').length == 0 ) 
		// next button not available
		return;
	document.getElementsByName('next')[0].style.display='none';
	setTimeout("document.getElementsByName('next')[0].style.display='';", secsTimeout*1000);
}

Source

Questionnaire Resource Id on cg site: 159730