Check out the LimeSurvey source code on GitHub!
Welcome, Guest
Username: Password:
  • Page:
  • 1
  • 2

TOPIC: Automatically proceed to next question (without clicking "next")

Automatically proceed to next question (without clicking "next") 2 years 3 months ago #107145

  • tpartner
  • tpartner's Avatar
  • Online
  • LimeSurvey Team
  • Posts: 6122
  • Thank you received: 1358
  • Karma: 534
You have some syntax problems where inserting the timeoutDialog - it all needs to be on one line or escaped properly - see below.

Having said that, I just don't get what you are trying to do with the IF statement.
- You say if groupIndex is greater than or equal to 0, click Submit, otherwise redirect the page.
- Well, groupIndex will always be greater than or equal to 0 so the redirect will never happen.
- The #movesubmitbtn element only exists on the last page of the survey, so, unless you are there, nothing will ever happen.

	$(document).ready(function(){
 
		var txtAlertMessage = 'Anyone there? Do you want to continue?';		
		var txtCloseButton = 'Continue';
		var redirectURL = location.pathname.split('index.php')[0];
		var timeToAlert = 2; // In seconds
		var timeToRedirect = 2; // In seconds
 
		// Page timeout action
		function pageTimeout() {
			// Find the group index - 
			var groupIndex = $('div[id^="group-"]').attr('id').split('group-')[1];
 
			if(groupIndex >= 0) {
				$('#movesubmitbtn').click();
			}	
			else {
				window.location = redirectURL;
			}
		}	
 
		// Alert Timer
		var alertTimer;
		function startAlertTimer() {
			alertTimer = setTimeout(function() {
				$('.custom-dialog-1').dialog('open');
			},timeToAlert*1000);
		}		
		function stopAlertTimer() {
			clearTimeout(alertTimer);
		}		
		function restartAlertTimer() {
			clearTimeout(alertTimer);
			startAlertTimer();
		}
		startAlertTimer();
 
		// Redirect Timer
		var redirectTimer;
		function startRedirectTimer() {
			redirectTimer = setTimeout(function() {
				pageTimeout();
			},timeToRedirect*1000);
		}		
		function stopRedirectTimer() {
			clearTimeout(redirectTimer);
		}		
		function restartRedirectTimer() {
			clearTimeout(redirectTimer);
			startRedirectTimer();
		}	
 
		// Insert the alert dialog
		var timeoutDialog = '<div class="custom-dialog-1">\
								<div class="text">'+txtAlertMessage+'</div>\
								<div class="buttons">\
									<button class="close" type="button" value="close">'+txtCloseButton+'</button>\
								</div>\
							</div>';
		$(timeoutDialog).dialog({
			autoOpen: false,
			open: function( event, ui ) {
				startRedirectTimer();
				//IE 10 z-index hack
				$('.ui-widget-overlay').css('z-index', Number($('.ui-widget-overlay').css('z-index')) - 2);
			},
			close: function( event, ui ) {
				stopRedirectTimer();
				restartAlertTimer();
			},
			width: 400,
			modal: true,
			resizable: false,
			draggable: true,
			closeOnEscape: true,
			dialogClass: 'timeout-dialog'
		});
		$('.timeout-dialog button').click(function() {
			$('.custom-dialog-1').dialog('close');
		});
 
		// Listener for activity
		$('#limesurvey').on('click keyup paste change' ,function(event){ 
			restartAlertTimer();
		});
	});
Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Last Edit: 2 years 3 months ago by tpartner.
The administrator has disabled public write access.

Automatically proceed to next question (without clicking "next") 2 years 3 months ago #107152

  • dweisser
  • dweisser's Avatar
  • Offline
  • Gold Lime
  • Posts: 222
  • Thank you received: 5
  • Karma: 5
Ahh, thank you. It makes sense now.
The administrator has disabled public write access.

Automatically proceed to next question (without clicking "next") 1 year 8 months ago #114492

  • SurveyDennis
  • SurveyDennis's Avatar
  • Offline
  • Junior Lime
  • Posts: 26
  • Thank you received: 4
  • Karma: 2
Hi,

Just curious, I am using this example with a normal list radio.
I have the question set to mandatory.

The code is working however I don't proceed to the next question properly.
A message popups -
Please use the LimeSurvey navigation buttons or index.
It appears you attempted to use the browser back button to re-submit a page.

(although I clicked the answer).
So in that case it looks like it is not saving the answer.
<script type="text/javascript" charset="utf-8">
	$(document).ready(function(){
 
		$( '#question{QID} input.radio' ).click(function() {
			document.limesurvey.submit();
		});
	});
</script>

Any ideas?
Thanks, Dennis
Last Edit: 1 year 8 months ago by SurveyDennis.
The administrator has disabled public write access.

Automatically proceed to next question (without clicking "next") 1 year 8 months ago #114496

  • tpartner
  • tpartner's Avatar
  • Online
  • LimeSurvey Team
  • Posts: 6122
  • Thank you received: 1358
  • Karma: 534
LimeSurvey version?
Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
The administrator has disabled public write access.

Automatically proceed to next question (without clicking "next") 1 year 8 months ago #114497

  • SurveyDennis
  • SurveyDennis's Avatar
  • Offline
  • Junior Lime
  • Posts: 26
  • Thank you received: 4
  • Karma: 2
Version 2.05
The administrator has disabled public write access.

Automatically proceed to next question (without clicking "next") 1 year 8 months ago #114498

  • tpartner
  • tpartner's Avatar
  • Online
  • LimeSurvey Team
  • Posts: 6122
  • Thank you received: 1358
  • Karma: 534
Try this:
<script type="text/javascript" charset="utf-8">	
	$(document).ready(function(){
 
		$('#question{QID} input.radio').click(function() {
			checkconditions($(this).attr('value'), $(this).attr('name'), $(this).attr('type'))
			$('#movenextbtn, #movesubmitbtn').trigger('click');
		});
	});
</script>
Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
The administrator has disabled public write access.
The following user(s) said Thank You: SurveyDennis

Automatically proceed to next question (without clicking "next") 1 year 8 months ago #114499

  • SurveyDennis
  • SurveyDennis's Avatar
  • Offline
  • Junior Lime
  • Posts: 26
  • Thank you received: 4
  • Karma: 2
Many thanks, that did the trick!!
Much appreciated
The administrator has disabled public write access.

Automatically proceed to next question (without clicking "next") 1 month 2 weeks ago #137511

Hey there, I've been using the following code for quite some time now to automatically proceed to the next question:
<script type="text/javascript" charset="utf-8">	
	$(document).ready(function(){
 
		$('#question{QID} input.radio').click(function() {
			checkconditions($(this).attr('value'), $(this).attr('name'), $(this).attr('type'))
			$('#movenextbtn, #movesubmitbtn').trigger('click');
		});
	});
</script>

Unfortunately, now that I upgraded LimeSurvey (Version 2.50+ Build 160606) I get the following message when choosing an answer option:
One or more mandatory questions have not been answered . Please answer this first to proceed !

Any idea why this happens?

Thanks for the help!
The administrator has disabled public write access.

Automatically proceed to next question (without clicking "next") 1 month 2 weeks ago #137525

  • tpartner
  • tpartner's Avatar
  • Online
  • LimeSurvey Team
  • Posts: 6122
  • Thank you received: 1358
  • Karma: 534
It works fine for me using the default template and list-radio questions. What template and question types are you using?
Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
The administrator has disabled public write access.
  • Page:
  • 1
  • 2
Moderators: ITEd
Time to create page: 0.281 seconds
Imprint                   Data Protection Statement                  Revocation information and revocation form