- Posts: 5
- Thank you received: 1
Welcome to the LimeSurvey Community Forum
Ask the community, share ideas, and connect with other LimeSurvey users!
Automatically proceed to next question (without clicking "next")
- ahavlik
- Topic Author
- Offline
- New Member
Less
More
10 years 10 months ago #95995
by ahavlik
Automatically proceed to next question (without clicking "next") was created by ahavlik
Hi,
I'm trying to allow my participants to to automatically move to the next question after clicking yes/no so that I may record their proper response times. I've tried to figure this out using javascript however, I don't have administrator capabilities as its through my university's website so not sure how to embed java. If anyone knows what to do/has a fix, please let me know. Thanks for your time to anyone reading this.
I'm trying to allow my participants to to automatically move to the next question after clicking yes/no so that I may record their proper response times. I've tried to figure this out using javascript however, I don't have administrator capabilities as its through my university's website so not sure how to embed java. If anyone knows what to do/has a fix, please let me know. Thanks for your time to anyone reading this.
The topic has been locked.
- tpartner
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 10634
- Thank you received: 3698
10 years 10 months ago #96016
by tpartner
Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Replied by tpartner on topic Automatically proceed to next question (without clicking "next")
If using a yes/no radio question,
set up your survey to use JavaScript
and add the following script to the source of the question.
Code:
<script type="text/javascript" charset="utf-8"> $(document).ready(function(){ $('#question{QID} input.radio'),click(function() { if($('#movesubmitbtn').length > 0) { document.limesurvey.move.value = 'movesubmit'; } else { document.limesurvey.move.value = 'movenext'; } document.limesurvey.submit(); }); }); </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: ahavlik
The topic has been locked.
- ahavlik
- Topic Author
- Offline
- New Member
Less
More
- Posts: 5
- Thank you received: 1
10 years 10 months ago #96028
by ahavlik
Replied by ahavlik on topic Automatically proceed to next question (without clicking "next")
Thanks for this!
The issue I'm having now is trying to get the admin at my university to change the global settings to allow javascript to run (which they won't do). Can you think of any non-java workarounds I might try to use? Anyway, thanks for your time.
Sincerely,
Andrew
The issue I'm having now is trying to get the admin at my university to change the global settings to allow javascript to run (which they won't do). Can you think of any non-java workarounds I might try to use? Anyway, thanks for your time.
Sincerely,
Andrew
The topic has been locked.
- tpartner
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 10634
- Thank you received: 3698
10 years 10 months ago #96033
by tpartner
Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Replied by tpartner on topic Automatically proceed to next question (without clicking "next")
Unfortunately, I don't know of any non-JavaScript solutions.
Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
The topic has been locked.
- dweisser
- Offline
- Premium Member
Less
More
- Posts: 153
- Thank you received: 5
10 years 1 month ago #105223
by dweisser
Replied by dweisser on topic Automatically proceed to next question (without clicking "next")
Perhaps related to this...Is there a way to auto_submit a survey?
I would like to automatically submit the survey before a session timed out if the respondent "walked away" from a live survey.
Is it possible?
David
I would like to automatically submit the survey before a session timed out if the respondent "walked away" from a live survey.
Is it possible?
David
The topic has been locked.
- byan
- Offline
- Senior Member
Less
More
- Posts: 50
- Thank you received: 11
10 years 1 month ago #105239
by byan
Replied by byan on topic Automatically proceed to next question (without clicking "next")
Again, you will have to use javascript.
function doSubmit() {
document.limesurvey.move2.click();
}
setTimeout("doSubmit()", #000);
# sets the number of seconds for auto submission
function doSubmit() {
document.limesurvey.move2.click();
}
setTimeout("doSubmit()", #000);
# sets the number of seconds for auto submission
The topic has been locked.
- DenisChenu
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 13935
- Thank you received: 2551
10 years 1 month ago #105253
by DenisChenu
Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
Replied by DenisChenu on topic Automatically proceed to next question (without clicking "next")
HI,
Think with 2.05, it's more easy to use :
Denis
Think with 2.05, it's more easy to use :
Code:
$("#defaultbtn").click();
Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
The topic has been locked.
- emimarz
- Offline
- New Member
Less
More
- Posts: 16
- Thank you received: 5
10 years 1 month ago #105273
by emimarz
Replied by emimarz on topic Automatically proceed to next question (without clicking "next")
do no exist a non-javascript solution
I tell you why
Do click is an event that occurs on the client side on the client PC
Javascript is a client-side scripting language
He is the only one that can interact with the user because HTML is too poor
:woohoo: :woohoo: :woohoo:
too much coffee
Best
Emiliano
I tell you why
Do click is an event that occurs on the client side on the client PC
Javascript is a client-side scripting language
He is the only one that can interact with the user because HTML is too poor
:woohoo: :woohoo: :woohoo:
too much coffee
Best
Emiliano
The topic has been locked.
- dweisser
- Offline
- Premium Member
Less
More
- Posts: 153
- Thank you received: 5
10 years 1 week ago #106387
by dweisser
Replied by dweisser on topic Automatically proceed to next question (without clicking "next")
To follow up on this,
How would you program this to occur on every page of the survey?
So, if on page 3, the respondent walked away from the survey, how would you submit after 5 minutes time?
What about page 4? and so on?
How would you program this to occur on every page of the survey?
So, if on page 3, the respondent walked away from the survey, how would you submit after 5 minutes time?
What about page 4? and so on?
The topic has been locked.
- tpartner
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 10634
- Thank you received: 3698
10 years 1 week ago - 10 years 1 week ago #106389
by tpartner
Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Replied by tpartner on topic Automatically proceed to next question (without clicking "next")
Well, auto-submitting the survey may be a little problematic because unanswered mandatory questions would prevent it and even if the submit worked it would only lead to the next survey page.
I think a better approach may be to pop up a warning after some period of inactivity and then redirect to somewhere like the root of the survey installation (the survey list page).
I'll need to give some thought to how to determine "inactivity", or more to the point, "activity" with all question types.
.
I think a better approach may be to pop up a warning after some period of inactivity and then redirect to somewhere like the root of the survey installation (the survey list page).
I'll need to give some thought to how to determine "inactivity", or more to the point, "activity" with all question types.
.
Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Last edit: 10 years 1 week ago by tpartner.
The topic has been locked.
- dweisser
- Offline
- Premium Member
Less
More
- Posts: 153
- Thank you received: 5
10 years 1 week ago #106399
by dweisser
Replied by dweisser on topic Automatically proceed to next question (without clicking "next")
I hear what you're saying...
The goal I have is to collect as much data as possible, so I'm not sure redirection is the answer.
Any advice you have to offer is always much appreciated.
David
The goal I have is to collect as much data as possible, so I'm not sure redirection is the answer.
Any advice you have to offer is always much appreciated.
David
The topic has been locked.
- tpartner
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 10634
- Thank you received: 3698
10 years 1 week ago - 10 years 1 week ago #106406
by tpartner
Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Replied by tpartner on topic Automatically proceed to next question (without clicking "next")
I can't agree with forcing the browser to submit the form. I my opinion, any form submission should be left entirely up to the user.
However, if you just want to remove the survey from an inactive computer you can add something like this to the end of template.js.
(adjust the first 5 variable as necessary)
This will:
- Start an "alert" timer on page load
- When the "alert" timer expires a dialog is popped up and a "redirect" timer is started
- When the "redirect" timer expires the page is redirected
- Closing the dialog will stop the "redirect" timer and restart the "alert" timer
- Any activity in the form (click, key-up, paste, change) will restart the "alert" timer
However, if you just want to remove the survey from an inactive computer you can add something like this to the end of template.js.
(adjust the first 5 variable as necessary)
This will:
- Start an "alert" timer on page load
- When the "alert" timer expires a dialog is popped up and a "redirect" timer is started
- When the "redirect" timer expires the page is redirected
- Closing the dialog will stop the "redirect" timer and restart the "alert" timer
- Any activity in the form (click, key-up, paste, change) will restart the "alert" timer
Code:
$(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 = 300; // In seconds var timeToRedirect = 5; // In seconds // Page timeout action function pageTimeout() { 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: false, 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: 10 years 1 week ago by tpartner.
The topic has been locked.