Bienvenue, Invité
Nom d'utilisateur : Mot de passe : Se souvenir de moi

SUJET : Prevent accidentially closing the survey

Prevent accidentially closing the survey il y a 4 mois 1 semaine #106456

  • jonsen
  • Portrait de jonsen
  • Hors ligne
  • Senior Lime
  • Messages : 71
  • Remerciements reçus 6
  • Karma: 1
Hey folks!

I used to use this to prevent (by first asking if the user is sure (s)he wants to leave) the usage of the browser's back button or the closing of the tab/window before completing the survey:
function goodbye(e) {
    if(document.limesurvey.move.value == '')
    {
    	if(!e) e = window.event;
    	//e.cancelBubble is supported by IE - this will kill the bubbling process.
    	e.cancelBubble = true;
    	e.returnValue = 'Sind Sie sicher, dass Sie die Seite verlassen möchten? Eingegebene Daten werden unter Umständen nicht gespeichert.'; //This is displayed on the dialog
 
    	//e.stopPropagation works in Firefox.
    	if (e.stopPropagation) {
    		e.stopPropagation();
    		e.preventDefault();
    	}
    }
}
window.onload=function() { document.limesurvey.move.value = ''; }
window.onbeforeunload=goodbye;

The variable document.limesurvey.move seems to have been removed in the current version (2.05+ b140302). Is there a good alternative? I wonder why this is not part of the core functionality because the survey can break on improper use of the back button - and also some people forget about the survey the already opened and are reminded before they close it... But anyways, I can solve it myself but find it hard to detect which activity is "proper use" and which is not.

Thank you very much!

Best
Jonsen
L'administrateur a désactivé l'accès en écriture pour le public.

Prevent accidentially closing the survey il y a 4 mois 1 semaine #106616

  • jonsen
  • Portrait de jonsen
  • Hors ligne
  • Senior Lime
  • Messages : 71
  • Remerciements reçus 6
  • Karma: 1
Is this really a non-issue for everyone else? What if someone wants to go back and uses the "back" button? Do you just accept that this participant will drop out of the survey because it will show "document expired"?

Please help me understand... Thanks!

Best
Jonsen
L'administrateur a désactivé l'accès en écriture pour le public.

Prevent accidentially closing the survey il y a 3 mois 3 semaines #107348

  • jonsen
  • Portrait de jonsen
  • Hors ligne
  • Senior Lime
  • Messages : 71
  • Remerciements reçus 6
  • Karma: 1
Pleeeeeeease people, can you at least tell me why this doesn't seem to bother anyone?

Thank you very much!

Best
Jonsen
L'administrateur a désactivé l'accès en écriture pour le public.

Prevent accidentially closing the survey il y a 3 mois 3 semaines #107377

  • DenisChenu
  • Portrait de DenisChenu
  • Hors ligne
  • Moderator Lime
  • Messages : 6238
  • Remerciements reçus 794
  • Karma: 238
Hi,

Not sure it work on all browser, but you can use your own 'identifier'
Try this:
function goodbye(e) {
    if(!$('#submitted').length)
    {
    	if(!e) e = window.event;
    	//e.cancelBubble is supported by IE - this will kill the bubbling process.
    	e.cancelBubble = true;
    	e.returnValue = 'Sind Sie sicher, dass Sie die Seite verlassen möchten? Eingegebene Daten werden unter Umständen nicht gespeichert.'; //This is displayed on the dialog
 
    	//e.stopPropagation works in Firefox.
    	if (e.stopPropagation) {
    		e.stopPropagation();
    		e.preventDefault();
    	}
    	return 'Sind Sie sicher, dass Sie die Seite verlassen möchten? Eingegebene Daten werden unter Umständen nicht gespeichert.'; // For chrome
    }
}
window.onbeforeunload=goodbye;
 
$(document).on('click',".button,[name='move']", function(event){
    $('body').append('<input type="hidden" id="submitted" />');
});
Dernière édition: il y a 3 mois 2 semaines par DenisChenu. Raison: // For chrome
L'administrateur a désactivé l'accès en écriture pour le public.
Cet utilisateur a été remercié pour son message par: jonsen

Prevent accidentially closing the survey il y a 3 mois 3 semaines #107381

  • DenisChenu
  • Portrait de DenisChenu
  • Hors ligne
  • Moderator Lime
  • Messages : 6238
  • Remerciements reçus 794
  • Karma: 238
PS: for chrome/chromium ,

Seems you need a return

Something like this:
return 'Sind Sie sicher, dass Sie die Seite verlassen möchten? Eingegebene Daten werden unter Umständen nicht gespeichert.'; //This is displayed on the dialog
L'administrateur a désactivé l'accès en écriture pour le public.

Prevent accidentially closing the survey il y a 3 mois 2 semaines #107439

  • jonsen
  • Portrait de jonsen
  • Hors ligne
  • Senior Lime
  • Messages : 71
  • Remerciements reçus 6
  • Karma: 1
@Denis, thank you very much for your answer, I'll try it ASAP and come back here to report...


@EVERYONE: Does this not seem to be an issue for anyone else? If yes, why not?

Best
Jonsen
L'administrateur a désactivé l'accès en écriture pour le public.

Prevent accidentially closing the survey il y a 3 mois 2 semaines #107441

  • DenisChenu
  • Portrait de DenisChenu
  • Hors ligne
  • Moderator Lime
  • Messages : 6238
  • Remerciements reçus 794
  • Karma: 238
Hi,

Because : user are master of their browser. If user want to close their browser, let them close their browser, or click previous or reload etc ....

Maybe :)
L'administrateur a désactivé l'accès en écriture pour le public.

Prevent accidentially closing the survey il y a 3 mois 2 semaines #107443

  • jonsen
  • Portrait de jonsen
  • Hors ligne
  • Senior Lime
  • Messages : 71
  • Remerciements reçus 6
  • Karma: 1
NO I AM THEIR MASTER ;)

Just kidding... I just think especially the use of the "back" button often happens because people are used to it. Also, I'm not disabling functionality, just making sure that it really is what the user wants.

But yeah, I get your point and why such functionality might not be part of the original LS code. Still, I think it should be.

Best
Jonsen

(BTW: The code above does not seem to work yet, I will get back on that Monday...)
L'administrateur a désactivé l'accès en écriture pour le public.

Prevent accidentially closing the survey il y a 3 mois 2 semaines #107444

  • DenisChenu
  • Portrait de DenisChenu
  • Hors ligne
  • Moderator Lime
  • Messages : 6238
  • Remerciements reçus 794
  • Karma: 238
jonsen écrit:
(BTW: The code above does not seem to work yet, I will get back on that Monday...)
Tested in FireFox and Chromium : limesurvey.sondages.pro/631792/newtest/Y
L'administrateur a désactivé l'accès en écriture pour le public.

Prevent accidentially closing the survey il y a 3 mois 2 semaines #107450

  • david2013
  • Portrait de david2013
  • Hors ligne
  • Junior Lime
  • Messages : 23
  • Remerciements reçus 3
  • Karma: 2
Hi Denis,

It works well. A quick question, why your survey is able to jump to different group without answer compulsory questions? Can you please show me how
L'administrateur a désactivé l'accès en écriture pour le public.
Modérateurs: ITEd
Temps de génération de la page : 0.201 secondes
Donation Image