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 3 weeks ago #87712

  • coeneisma
  • coeneisma's Avatar
  • OFFLINE
  • Junior Lime
  • Posts: 25
  • 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.

Re: Hide next subquestion until current one is answered 2 years 3 weeks ago #87717

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

Re: Hide next subquestion until current one is answered 2 years 2 weeks ago #87727

  • DenisChenu
  • DenisChenu's Avatar
  • OFFLINE
  • Moderator Lime
  • Posts: 6551
  • Thank you received: 868
  • Karma: 257
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.

Re: Hide next subquestion until current one is answered 2 years 2 weeks ago #87758

  • tpartner
  • tpartner's Avatar
  • OFFLINE
  • LimeSurvey Team
  • Posts: 4358
  • Thank you received: 826
  • Karma: 381
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_survey_717646.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.

Re: Hide next subquestion until current one is answered 2 years 2 weeks ago #87781

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

Re: Hide next subquestion until current one is answered 3 weeks 5 days ago #113896

  • zer0mode
  • zer0mode's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 12
  • 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.

Re: Hide next subquestion until current one is answered 3 weeks 4 days ago #113907

  • tpartner
  • tpartner's Avatar
  • OFFLINE
  • LimeSurvey Team
  • Posts: 4358
  • Thank you received: 826
  • Karma: 381
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

Re: Hide next subquestion until current one is answered 2 weeks 4 days ago #114086

  • zer0mode
  • zer0mode's Avatar
  • OFFLINE
  • Fresh Lemon
  • Posts: 12
  • 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: 2 weeks 4 days ago by zer0mode. Reason: added text
The administrator has disabled public write access.
Moderators: ITEd
Time to create page: 0.135 seconds
Donation Image