- Posts: 222
- Thank you received: 10
Ask the community, share ideas, and connect with other LimeSurvey users!
// A jQuery plugin to render column(s) in checkbox arrays exclusive (function( $ ){ $.fn.cbExclusiveColumns = function(options) { var opts = $.extend( { //columns: [3,4] // Column(s) to be exclusive (comma-separated) }, options); return this.each(function() { var thisQuestion = $(this) // Add some classes to the checkbox cells $('td.answer-item', thisQuestion).addClass('normal-item'); $('tr.subquestion-list', thisQuestion).each(function(i) { var thisRow = $(this); $.each(opts.columns, function(i, val) { $('td.answer-item:eq('+(val-1)+')', thisRow).removeClass('normal-item').addClass('exclusive-item'); }); }); // A listener on the checkboxes $('input[type="checkbox"]', thisQuestion).on('change', function (event) { handleExclusive($(this).closest('td')); }); function handleExclusive(thisCell) { var thisRow = $(thisCell).closest('tr'); // Uncheck the appropriate boxes in a row if ($(thisCell).hasClass('normal-item')) { $('.exclusive-item input[type="checkbox"]', thisRow).prop('checked', false); $('.exclusive-item input[type="text"]', thisRow).val(''); } else { $('.answer-item', thisRow).not(thisCell).find('input[type="checkbox"]').prop('checked', false); $('.answer-item', thisRow).not(thisCell).find('input[type="text"]').val(''); } // Check conditions (relevance) $('td.answer-item', thisRow).each(function(i) { var thisValue = ''; if($('input[type="checkbox"]', this).is(':checked')) { thisValue = 1; } var thisSGQA = $('input[type="checkbox"]', this).attr('id').replace(/cbox_/, ''); $('input[type="hidden"]', this).attr('value', thisValue); fixnum_checkconditions(thisValue, thisSGQA, 'hidden'); }); } }); }; })( jQuery );
<script type="text/javascript" charset="utf-8"> $(document).on('ready pjax:scriptcomplete',function(){ $('#question{QID}').cbExclusiveColumns({ columns: [3,4] // Column(s) to be exclusive (comma-separated) }); }); </script>
davebostockgmail wrote: Following on from this is there any way to make the last row of an array numbers with checkboxes exclusive
For example
A B
Option 1 [ ] [ ]
Option 2 [ ] [ ]
Exclusive [ ] [ ]
So in this case you can select both option 1 and 2 as a multiple but the exclusive option behaves as it would in a multiple choice question?
Version 3.17.5
Thanks
Dave