- Posts: 4
- Thank you received: 0
Ask the community, share ideas, and connect with other LimeSurvey users!
<script> // 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> <script type="text/javascript" charset="utf-8"> $(document).on('ready pjax:scriptcomplete',function(){ $('#question{QID}').cbExclusiveColumns({ columns: [4] // Column(s) to be exclusive (comma-separated) }); }); </script>