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

More
3 years 6 months ago - 3 years 6 months ago #107145 by tpartner
tpartner replied the topic: Automatically proceed to next question (without clicking "next")
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: 3 years 6 months ago by tpartner.

Please Log in to join the conversation.

More
3 years 6 months ago #107152 by dweisser
dweisser replied the topic: Automatically proceed to next question (without clicking "next")
Ahh, thank you. It makes sense now.

Please Log in to join the conversation.

More
2 years 11 months ago - 2 years 11 months ago #114492 by SurveyDennis
SurveyDennis replied the topic: Automatically proceed to next question (without clicking "next")
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

Be SurveyFriendly too
SurveyFriendly Designer [at] SurveyFriendly [dot] com
Last Edit: 2 years 11 months ago by SurveyDennis.

Please Log in to join the conversation.

More
2 years 11 months ago #114496 by tpartner
tpartner replied the topic: Automatically proceed to next question (without clicking "next")
LimeSurvey version?

Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.

Please Log in to join the conversation.

More
2 years 11 months ago #114497 by SurveyDennis
SurveyDennis replied the topic: Automatically proceed to next question (without clicking "next")
Version 2.05

Be SurveyFriendly too
SurveyFriendly Designer [at] SurveyFriendly [dot] com

Please Log in to join the conversation.

More
2 years 11 months ago #114498 by tpartner
tpartner replied the topic: Automatically proceed to next question (without clicking "next")
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 following user(s) said Thank You: SurveyDennis

Please Log in to join the conversation.

More
2 years 11 months ago #114499 by SurveyDennis
SurveyDennis replied the topic: Automatically proceed to next question (without clicking "next")
Many thanks, that did the trick!!
Much appreciated

Be SurveyFriendly too
SurveyFriendly Designer [at] SurveyFriendly [dot] com

Please Log in to join the conversation.

More
1 year 4 months ago #137511 by MrHappyAndCo
MrHappyAndCo replied the topic: Automatically proceed to next question (without clicking "next")
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!

Please Log in to join the conversation.

More
1 year 4 months ago #137525 by tpartner
tpartner replied the topic: Automatically proceed to next question (without clicking "next")
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.

Please Log in to join the conversation.

Start now!

Just create your account and start using Limesurvey today.

Register now