@tpartner, I need you help!!!the maximum answers per row

More
4 months 1 week ago #180012 by surveySn
<script type="text/javascript" charset="utf-8">
	$(document).ready(function() {
 
		// Define the maximum answers per column
		var maxAnswers = 1;
 
		// Identify this question
		var thisQuestion = $('#question{QID}');
 
		// Index the array columns
		$('table.subquestion-list tr', thisQuestion).each(function(i) {
			$('> *', this).each(function(i) {
				$(this).attr('data-index', i);
			});
		});
 
		// Listener on the checkboxes
		$('input[type="checkbox"]', thisQuestion).on('change', function(e) {
			var thisIndex = $(this).closest('.answer-item').attr('data-index');
			$('[data-index="'+thisIndex+'"] input[type="checkbox"]', thisQuestion).prop('disabled', false);
 
			// If max reached, disable unchecked inputs in this column
			if($('[data-index="'+thisIndex+'"] input[type="checkbox"]:checked', thisQuestion).length >= maxAnswers) {
				$('[data-index="'+thisIndex+'"] input[type="checkbox"]:not(:checked)', thisQuestion).prop('disabled', true);
			}
		});
	});
</script>

The above is the restricted column.



What about Row?



www.limesurvey.org/community/forums/can-...election-imit#180008
This way, HTTP 500

Please Log in or Create an account to join the conversation.

LimeSurvey Partners
More
4 months 5 days ago #180413 by surveySn
Has anybody helped me?

Please Log in or Create an account to join the conversation.

More
4 months 5 days ago - 4 months 5 days ago #180430 by tpartner
Placing this script in the source of an array-numbers-checkboxes question will enforce a maximum of 3 items checked per row.

<script type="text/javascript" charset="utf-8">
 
	$(document).ready(function() {
 
		// Define the maximum answers per row
		var maxAnswers = 3;
 
		// Identify this question
		var thisQuestion = $('#question{QID}');
 
		// Listener on the checkboxes
		$('input[type="checkbox"]', thisQuestion).on('change', function(e) {
			var thisRow = $(this).closest('tr');
			$('input[type="checkbox"]', thisRow).prop('disabled', false);
 
			// If max reached, disable unchecked inputs in this row
			if($('input[type="checkbox"]:checked', thisRow).length >= maxAnswers) {
				$('input[type="checkbox"]:not(:checked)', thisRow).prop('disabled', true);
			}
		});
	});	
</script>

Sample survey attached:

File Attachment:

File Name: limesurvey...2-13.lss
File Size:35 KB

Cheers,
Tony Partner

Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Official LimeSurvey Partner - partnersurveys.com
Attachments:
Last edit: 4 months 5 days ago by tpartner.
The following user(s) said Thank You: surveySn

Please Log in or Create an account to join the conversation.

More
4 months 5 days ago #180431 by surveySn
Thank you very much, tpartner.

Please Log in or Create an account to join the conversation.

More
2 weeks 1 day ago #185192 by dirk01
Hi there,

Is it possible to change the script to an array text question.

If someone fills in one or two options in a one row, the other options are disabled.

For instance, how many pieces of fruit do you eat, and they can answer by day, week, month or year?

Kind regards,

Dirk
Attachments:

Please Log in or Create an account to join the conversation.

More
2 weeks 1 day ago #185199 by Joffm
That you can do easily by the built-in option of question validation
(count(self.sq_SQ001_X)<4) and (count(self.sq_SQ002_X)<4) and (count(self.sq_SQ003_X)<4) and (count(self.sq_SQ004_X)<4)





Joffm


Volunteers are not paid.
Not because they are worthless, but because they are priceless
Attachments:

Please Log in or Create an account to join the conversation.

More
2 weeks 1 day ago #185200 by dirk01
Ok, thanks for the quick respons.

I understand it and I've used the EM before, but in this case it is rather complicated because the options should be disabled on a row per row basis.

So in the example only cell "option1--X005" should be disabled, not the other rows/cells of the array.

Please Log in or Create an account to join the conversation.

More
2 weeks 1 day ago #185208 by Joffm
Yes, I know.
As you see in the validation there is the check row by row.
Only if there are more than 3 mentions in one row the error message will appear.


But I admit that it is a bit confusing that the whole question is marked as "wrong" in case there are 4 mentions in one row.
On the other side you get the message immediately after your wrong entry.

Joffm

You see, I prefer built-in features. Too many times a workaround didn't work anymore after an update or a new major release and had to be adapted.


Volunteers are not paid.
Not because they are worthless, but because they are priceless
Attachments:
The following user(s) said Thank You: DenisChenu

Please Log in or Create an account to join the conversation.

More
2 weeks 17 hours ago #185247 by dirk01
Thanks a lot. I should have given the expression a closer look.

I use it sometimes for calculations, not for validations.

Dirk

Please Log in or Create an account to join the conversation.

Start now!

Just create your account and start using Limesurvey today.

Register now
Join our Newsletter!