Welcome, Guest
Username: Password: Remember me

TOPIC: Hide next subquestion until current one is answered

Hide next subquestion until current one is answered 2 years 7 months ago #87712

  • coeneisma
  • coeneisma's Avatar
  • Offline
  • Junior Lime
  • Posts: 28
  • Thank you received: 2
  • Karma: 1
Hi all,

Small question, searched but couldn't find the answer. Is it possible to hide the next subquestion untill any data is putt in the current one?

Got a question with 30 or so subquestions (multiple short questions, see attachment), and to keep the survey clean I want to hide all inputfields until the previous one is given.

Thanks in advance!
Attachments:
The administrator has disabled public write access.

Hide next subquestion until current one is answered 2 years 7 months ago #87717

  • coeneisma
  • coeneisma's Avatar
  • Offline
  • Junior Lime
  • Posts: 28
  • Thank you received: 2
  • Karma: 1
btw, language is set to dutch in attached lsg-file
The administrator has disabled public write access.

Hide next subquestion until current one is answered 2 years 7 months ago #87727

  • DenisChenu
  • DenisChenu's Avatar
  • Online
  • Moderator Lime
  • Posts: 7312
  • Thank you received: 1006
  • Karma: 290
There are non included function in LimeSurvey.

You have to look at workarounds if you found something like this.

Maybe that one : docs.limesurvey.org/Workarounds%3A+Manip...exible_Text_question
The administrator has disabled public write access.

Hide next subquestion until current one is answered 2 years 7 months ago #87758

  • tpartner
  • tpartner's Avatar
  • Online
  • LimeSurvey Team
  • Posts: 4955
  • Thank you received: 1017
  • Karma: 422
Or, as a simplified version of that workaround, you could add this to the source of the question. This script will hide all multiple-short-txt answers except the first one and then as a value is entered in each, the next one is shown.
<script type="text/javascript" charset="utf-8">
	$(document).ready(function(){
 
		$('.multiple-short-txt ul.subquestions-list li').hide();
		$('.multiple-short-txt ul.subquestions-list li:first').show();
		$('.multiple-short-txt ul.subquestions-list input.text').keyup(function(){
			if($(this).val() !== '') {
				$(this).parents('li:eq(0)').next('li').show();
			}
		});
 
	});
 
</script>

Here's a sample survey with the code in the first question of your group.

File Attachment:

File Name: limesurvey...7646.lss
File Size:53 KB
Cheers,
Tony Partner

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

LimeSurvey is open-source and run entirely by volunteers so please consider donating to support the project.
The administrator has disabled public write access.

Hide next subquestion until current one is answered 2 years 7 months ago #87781

  • coeneisma
  • coeneisma's Avatar
  • Offline
  • Junior Lime
  • Posts: 28
  • Thank you received: 2
  • Karma: 1
Thanks a lot guys! Cheers!
The administrator has disabled public write access.

Hide next subquestion until current one is answered 8 months 3 days ago #113896

  • zer0mode
  • zer0mode's Avatar
  • Offline
  • Junior Lime
  • Posts: 20
  • Karma: 0
tpartner wrote:
<script type="text/javascript" charset="utf-8">
	$(document).ready(function(){
 
		$('.multiple-short-txt ul.subquestions-list li').hide();
		$('.multiple-short-txt ul.subquestions-list li:first').show();
		$('.multiple-short-txt ul.subquestions-list input.text').keyup(function(){
			if($(this).val() !== '') {
				$(this).parents('li:eq(0)').next('li').show();
			}
		});
 
	});
 
</script>

How to change this code and the class .multiple-short-txt with .array­-mu­lti­-fl­exi­-text to adapt it for Array (Multi Flexible)(Text)? Thanks in advance for any possible hint given!
The administrator has disabled public write access.

Hide next subquestion until current one is answered 8 months 3 days ago #113907

  • tpartner
  • tpartner's Avatar
  • Online
  • LimeSurvey Team
  • Posts: 4955
  • Thank you received: 1017
  • Karma: 422
This should do the trick:

<script type="text/javascript" charset="utf-8">	
	$(document).ready(function(){
 
		// Identify this question
		var thisQuestion = $('#question{QID}');
 
		$('tr.subquestion-list', thisQuestion).hide();
		$('tr.subquestion-list:first', thisQuestion).show();
		$('input[type="text"]', thisQuestion).keyup(function(){
			if($(this).val() !== '') {
				$(this).closest('tr.subquestion-list').next('tr.subquestion-list').show();
			}
		});
 
	});
</script>
Cheers,
Tony Partner

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

LimeSurvey is open-source and run entirely by volunteers so please consider donating to support the project.
The administrator has disabled public write access.
The following user(s) said Thank You: zer0mode

Hide next subquestion until current one is answered 7 months 3 weeks ago #114086

  • zer0mode
  • zer0mode's Avatar
  • Offline
  • Junior Lime
  • Posts: 20
  • Karma: 0
Yes, this works nice, thanks !

Oh and i've tried to integrate another condition in this script which would show only certain number of empty lines. This value would be defined in a preceding numeric question. Like described in this post. I'll try to make that functional and add the code later with a survey example.
Last Edit: 7 months 3 weeks ago by zer0mode. Reason: added text
The administrator has disabled public write access.
Moderators: ITEd
Time to create page: 0.188 seconds