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
  • ahavlik's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
10 years 10 months ago #95995 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.
The topic has been locked.
  • tpartner
  • tpartner's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
10 years 10 months ago #96016 by tpartner
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
  • ahavlik's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
10 years 10 months ago #96028 by ahavlik
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 topic has been locked.
  • tpartner
  • tpartner's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
10 years 10 months ago #96033 by tpartner
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.
More
10 years 1 month ago #105223 by dweisser
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
The topic has been locked.
More
10 years 1 month ago #105239 by byan
Again, you will have to use javascript.

function doSubmit() {
document.limesurvey.move2.click();
}

setTimeout("doSubmit()", #000);

# sets the number of seconds for auto submission
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
10 years 4 weeks ago #105253 by DenisChenu
HI,

Think with 2.05, it's more easy to use :
Code:
$("#defaultbtn").click();
Denis

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.
More
10 years 4 weeks ago #105273 by emimarz
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
The topic has been locked.
More
10 years 2 days ago #106387 by dweisser
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?
The topic has been locked.
  • tpartner
  • tpartner's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
10 years 2 days ago - 10 years 2 days ago #106389 by tpartner
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.


.

Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Last edit: 10 years 2 days ago by tpartner.
The topic has been locked.
More
10 years 1 day ago #106399 by dweisser
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 topic has been locked.
  • tpartner
  • tpartner's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
10 years 1 day ago - 10 years 1 day ago #106406 by tpartner
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

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 day ago by tpartner.
The topic has been locked.

Lime-years ahead

Online-surveys for every purse and purpose