Unchecking excluded checkboxes

More
1 year 11 months ago #146681 by tpartner
tpartner replied the topic: Unchecking excluded checkboxes
Here is an updated version if the script that should handle both types of multiple-choice.

<script type="text/javascript" charset="utf-8">		
 
	$(document).ready(function() {
 
		// Identify this question
		var thisQuestion = $('#question{QID}');
 
		// Add some classes
		$('.question-item:not(:last)', thisQuestion).addClass('non-exclusive-item');
		$('.question-item:last', thisQuestion).addClass('exclusive-item');
 
		// Handle exclusive items
		$('input.checkbox', thisQuestion).on('change', function(e) {
			if($(this).is(':checked')) {
				var actionItems = $('.non-exclusive-item', thisQuestion);
				if($(this).closest('.question-item').hasClass('non-exclusive-item')) {
					actionItems = $('.exclusive-item', thisQuestion);
				}
				actionItems.each(function(i) {
					$('input.checkbox', this).prop('checked', false).trigger('change');
					$('input:hidden', this).attr('value', '');
					$('input[type="text"]', this).val('').trigger('keyup');
				});
			}
		});
 
	});
</script>

Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
The following user(s) said Thank You: andre_twang, Trmiey_124040

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

More
1 year 11 months ago #146705 by andre_twang
andre_twang replied the topic: Unchecking excluded checkboxes
Thanks Tony! It worked really well!

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

More
7 months 3 weeks ago #167341 by tixeon
tixeon replied the topic: Unchecking excluded checkboxes
I have tried using this script in version 2.6.7-lts Build 171212 and it doesn’t work. Is there an updated code that will?

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

More
7 months 3 weeks ago #167343 by Joffm
Joffm replied the topic: Unchecking excluded checkboxes
Hi, tixeon,

In the first post of this thread you see that it is about the 2.50-2.73 branch.

You work with the older 2.06 branch, which was renamed - to confuse some users - to 2.6.x

So you cannot expect the script to work.

Best regards
Joffm


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

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

More
7 months 3 weeks ago #167427 by tpartner
tpartner replied the topic: Unchecking excluded checkboxes

I have tried using this script in version 2.6.7-lts Build 171212 and it doesn’t work.

I just tested and it does work in 2.06 LTS. Can you attach a small sample survey containing only the affected question?

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

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

More
7 months 1 week ago #167924 by krosser
krosser replied the topic: Unchecking excluded checkboxes

tpartner wrote: Try this:

<script type="text/javascript" charset="utf-8">		
 
	$(document).ready(function() {
 
		// Identify this question
		var thisQuestion = $('#question{QID}');
 
		// Uncheck all excluded items
		$('div.question-item:last input.checkbox', thisQuestion).on('change', function(e) {
			if($(this).is(':checked')) {
				$('input.checkbox', thisQuestion).not($(this)).each(function(i) {
					$(this).prop('checked', false);
					$(this).nextAll('input:hidden:eq(0)').attr('value', '');
				});
				$('input[type="text"]', thisQuestion).val('');
			}
		});
 
	});
</script>


Just tested these workarounds and, unfortunately, they do not work anymore in LS 3.7. :(

I'm using the latest LS 3.15 hosted on LS servers, not installed locally.
Attachments:

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

More
7 months 1 week ago - 7 months 1 week ago #167932 by tpartner
tpartner replied the topic: Unchecking excluded checkboxes
Try changing all instances of 'input.checkbox' to 'input [type="checkbox"]'

Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Last Edit: 7 months 1 week ago by tpartner.

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

More
7 months 1 week ago #167950 by krosser
krosser replied the topic: Unchecking excluded checkboxes

tpartner wrote: Try changing all instances of 'input.checkbox' to 'input [type="checkbox"]'


Tried to change it in both lines where it is, but it didn't solve it.

I'm using the latest LS 3.15 hosted on LS servers, not installed locally.

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

More
7 months 1 week ago #167964 by tpartner
tpartner replied the topic: Unchecking excluded checkboxes
Sorry, I am away this week with only a phone so can't debug any further.

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

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

More
7 months 1 week ago #168095 by tpartner
tpartner replied the topic: Unchecking excluded checkboxes
This will work in 3.x:

<script type="text/javascript" charset="utf-8">		
 
	$(document).ready(function() {
 
		// Identify this question
		var thisQuestion = $('#question{QID}');
 
		// Add some classes
		$('.question-item:not(:last)', thisQuestion).addClass('non-exclusive-item');
		$('.question-item:last', thisQuestion).addClass('exclusive-item');
 
		// Handle exclusive items
		$('input[type="checkbox"]', thisQuestion).on('change', function(e) {
			if($(this).is(':checked')) {
				var actionItems = $('.non-exclusive-item', thisQuestion);
				if($(this).closest('.question-item').hasClass('non-exclusive-item')) {
					actionItems = $('.exclusive-item', thisQuestion);
				}
				actionItems.each(function(i) {
					$('input[type="checkbox"]', this).prop('checked', false).trigger('change');
					$('input:hidden', this).attr('value', '');
					$('input[type="text"]', this).val('').trigger('keyup');
				});
			}
		});
		$('input[type="text"]', thisQuestion).on('keyup change', function(e) {
			var thisInput = $(this);
			setTimeout(function() {
				$(thisInput).closest('.question-item').find('input[type="checkbox"]').trigger('change');
			}, 200);
		});
 
	});
</script>

Sample survey attached:

File Attachment:

File Name: limesurvey...2965.lss
File Size:16 KB

Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Attachments:

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

More
4 months 3 weeks ago #171282 by Andrea01
Andrea01 replied the topic: Unchecking excluded checkboxes
Hi Tony,

for your script:

<script type="text/javascript" charset="utf-8">

$(document).ready(function() {

// Identify this question
var thisQuestion = $('#question{QID}');

// Add some classes
$('.question-item:not(:last)', thisQuestion).addClass('non-exclusive-item');
$('.question-item:last', thisQuestion).addClass('exclusive-item');

// Handle exclusive items
$('input.checkbox', thisQuestion).on('change', function(e) {
if($(this).is(':checked')) {
var actionItems = $('.non-exclusive-item', thisQuestion);
if($(this).closest('.question-item').hasClass('non-exclusive-item')) {
actionItems = $('.exclusive-item', thisQuestion);
}
actionItems.each(function(i) {
$('input.checkbox', this).prop('checked', false).trigger('change');
$('input:hidden', this).attr('value', '');
$('input[type="text"]', this).val('').trigger('keyup');
});
}
});

});
</script>

Is there a way to handle two exclusive options???

Thanks and best regards
Andrea

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

More
4 months 3 weeks ago #171315 by tpartner
tpartner replied the topic: Unchecking excluded checkboxes
This script will render the last two items exclusive:

<script type="text/javascript" charset="utf-8">		
 
	$(document).ready(function() {
 
		// Identify this question
		var thisQuestion = $('#question{QID}');
 
		// Add some classes
		var sqCount = $('.question-item', thisQuestion).length;
		$('.question-item', thisQuestion).addClass('non-exclusive-item');
		$('.question-item:eq('+(sqCount-2)+')', thisQuestion).removeClass('non-exclusive-item').addClass('exclusive-item'); // 2nd last item
		$('.question-item:eq('+(sqCount-1)+')', thisQuestion).removeClass('non-exclusive-item').addClass('exclusive-item'); // Last item
 
		// Handle exclusive items
		$('input[type="checkbox"]', thisQuestion).on('change', function(e) {
			if($(this).is(':checked')) {
				var thisItem = $(this).closest('.question-item');
				var actionItems = $('.question-item', thisQuestion).not($(thisItem));
				if($(thisItem).hasClass('non-exclusive-item')) {
					actionItems = $('.exclusive-item', thisQuestion);
				}
				actionItems.each(function(i) {
					$('input[type="checkbox"]', this).prop('checked', false).trigger('change');
					$('input:hidden', this).attr('value', '');
					$('input[type="text"]', this).val('').trigger('keyup');
				});
			}
		});
		$('input[type="text"]', thisQuestion).on('keyup change', function(e) {
			var thisInput = $(this);
			setTimeout(function() {
				$(thisInput).closest('.question-item').find('input[type="checkbox"]').trigger('change');
			}, 200);
		});
 
	});
</script>

Sample survey attached:

File Attachment:

File Name: limesurvey...9651.lss
File Size:17 KB

Cheers,
Tony Partner
Solutions, code and workarounds presented in these forums are given without any warranty, implied or otherwise.
Attachments:

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

More
4 months 3 weeks ago #171340 by Andrea01
Andrea01 replied the topic: Unchecking excluded checkboxes
Thank you Tony, perfect as always.

Andrea

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!