Check out the LimeSurvey source code on GitHub!
Welcome, Guest
Username: Password:

TOPIC: Hide next subquestion until current one is answered

Hide next subquestion until current one is answered 4 years 1 month ago #87712

  • coeneisma
  • coeneisma's Avatar
  • Offline
  • Expert Lime
  • Posts: 98
  • Thank you received: 24
  • Karma: 10
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 4 years 1 month ago #87717

  • coeneisma
  • coeneisma's Avatar
  • Offline
  • Expert Lime
  • Posts: 98
  • Thank you received: 24
  • Karma: 10
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 4 years 1 month ago #87727

  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • Moderator Lime
  • Posts: 9555
  • Thank you received: 1374
  • Karma: 390
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
Assistance on LimeSurvey forum and LimeSurvey core development are on my free time (Need support ?).
A bug not reported is a bug not corrected. | 2.61lts version improved | Need plugins for LimeSurvey ?
The administrator has disabled public write access.

Hide next subquestion until current one is answered 4 years 1 month ago #87758

  • tpartner
  • tpartner's Avatar
  • Offline
  • LimeSurvey Team
  • Posts: 6567
  • Thank you received: 1477
  • Karma: 579
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.
The administrator has disabled public write access.

Hide next subquestion until current one is answered 4 years 1 month ago #87781

  • coeneisma
  • coeneisma's Avatar
  • Offline
  • Expert Lime
  • Posts: 98
  • Thank you received: 24
  • Karma: 10
Thanks a lot guys! Cheers!
The administrator has disabled public write access.

Hide next subquestion until current one is answered 2 years 1 month ago #113896

  • envitera
  • envitera'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 2 years 1 month ago #113907

  • tpartner
  • tpartner's Avatar
  • Offline
  • LimeSurvey Team
  • Posts: 6567
  • Thank you received: 1477
  • Karma: 579
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.
The administrator has disabled public write access.
The following user(s) said Thank You: envitera

Hide next subquestion until current one is answered 2 years 1 month ago #114086

  • envitera
  • envitera'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: 2 years 1 month ago by envitera. Reason: added text
The administrator has disabled public write access.
Time to create page: 0.640 seconds
Imprint                   Privacy policy         General Terms & Conditions         Revocation information and revocation form