- Posts: 40
- Thank you received: 0
Ask the community, share ideas, and connect with other LimeSurvey users!
You can submit a feature request - www.limesurvey.org/en/community-services/feature-requests .To make it simple, how about make enhancement in limesurvey,
for array question add Option for Other answer like single or multiple question type?
I think you have enough information in this thread to accomplish that.How about array question like attached image.
<script type="text/javascript" charset="utf-8"> $(document).ready(function() { // Identify the questions var thisQuestion = $('#question'+{QID}+''); var nextQuestion1 = $(thisQuestion).nextAll('.text-short:eq(0)'); var nextQuestion2 = $(thisQuestion).nextAll('.text-short:eq(1)'); var nextQuestion3 = $(thisQuestion).nextAll('.text-short:eq(2)'); var nextQuestions = $(nextQuestion1).add(nextQuestion2).add(nextQuestion3); var nextLength = nextQuestions.length; var sqLength = ('tr.answers-list', thisQuestion).length; // Hide the short-text questions $(nextQuestions).hide(); // Move the hidden text inputs into the array for (i = 0; i < nextLength; i++) { var workingIndex = (sqLength - 1) - (nextLength - i); var nextQ = nextQuestions[i]; $('th.answertext:eq('+workingIndex+')', thisQuestion).append($('input[type="text"]', nextQ)).closest('tr').addClass('otherRow'); } // Some styling... $('input[type="text"]', thisQuestion).css({ 'width': '50%' }); // Handle the "Other" radios $('input[type="text"]', thisQuestion).on('keyup change',function(event){ event.stopPropagation(); var thisRow = $(this).closest('tr.answers-list'); if($.trim($(this).val()) == '') { $('input:radio[value!=""]', thisRow).prop('checked',false); $('input:radio[value=""]', thisRow).click(); } else { $('input:radio[value=""]', thisRow).prop('checked',false); } }); // Handle the "Other" text inputs $('.otherRow input.radio', thisQuestion).on('click',function(event){ var thisRow = $(this).closest('tr.answers-list'); if($(this).attr('value') == '') { $('input[type="text"]', thisRow).val(''); } }); // Validate the "Other" text inputs on submit if($('#movenextbtn, #movesubmitbtn').attr('data-inserted-other') != 'true') { // We're only doing this once on this page $('#movenextbtn, #movesubmitbtn').attr('data-inserted-other', 'true').on('click.insertedOther', function (event) { var otherError = 0; $('.array-flexible-row .otherRow').each(function(i) { if(($('input:radio[value!=""]:checked', this).length > 0 && $('input[type="text"]', this).val() == '') || ($('input:radio[value!=""]:checked', this).length == 0 && $('input[type="text"]', this).val() != '')) { otherError = 1; } }); if(otherError == 1) { alert('Please review your answer in the "Other" row(s).'); return false; } }); } }); </script>
<script type="text/javascript" charset="utf-8"> $(document).ready(function() { // Identify the questions var thisQuestion = $('#question'+{QID}+''); var nextQuestion = $(thisQuestion).nextAll('.text-short:eq(0)'); // Hide the short-text question $(nextQuestion).hide(); // Add a class to the "N/A" column $('table.subquestions-list thead tr th:last', thisQuestion).addClass('na-column'); $('table.subquestions-list tbody tr', thisQuestion).each(function(i) { $('td:last', this).addClass('na-column'); }); // Hide the "N/A" column $('.na-column', thisQuestion).hide(); var ansColWidth = Number($('.col-answers', thisQuestion).attr('width').replace(/%/, '')); var newColWidth = (100-ansColWidth)/($('col.odd, col.even', thisQuestion).length-1); $('col.odd, col.even', thisQuestion).attr('width', newColWidth+'%'); // Move the hidden text input into the array $('th.answertext:last', thisQuestion).append($('input[type="text"]', nextQuestion)).closest('tr').addClass('otherRow'); // Initial "N/A" radio setting if($('.otherRow input:radio:checked', thisQuestion).length == 0) { $('.otherRow .na-column input:radio', thisQuestion).trigger('click'); } // Some styling... $('input[type="text"]', thisQuestion).css({ 'width': '50%' }); // Handle the "Other" radios $('input[type="text"]', thisQuestion).on('keyup change',function(event){ event.stopPropagation(); if($.trim($(this).val()) == '') { $('.otherRow input:radio', thisQuestion).prop('checked',false); $('.otherRow .na-column input:radio', thisQuestion).click(); } else { $('.otherRow .na-column input:radio', thisQuestion).prop('checked',false); } }); }); </script>
Was the attachment revoked or is that a problem from the new website (which was introduced today)?tpartner wrote:
<script type="text/javascript" charset="utf-8"> $(document).ready(function() { // Identify the questions var thisQuestion = $('#question'+{QID}+''); var nextQuestion = $(thisQuestion).nextAll('.text-short:eq(0)'); // Hide the short-text question $(nextQuestion).hide(); // Move the "Other" row to the end (in case of randomization) $('table.subquestions-list', thisQuestion).append($('tr.answers-list[id$="X'+{QID}+'99"]')); // Add a class to the "N/A" column $('table.subquestions-list thead tr th:last', thisQuestion).addClass('na-column'); $('table.subquestions-list tbody tr', thisQuestion).each(function(i) { $('td:last', this).addClass('na-column'); }); // Hide the "N/A" column $('.na-column', thisQuestion).hide(); var ansColWidth = Number($('.col-answers', thisQuestion).attr('width').replace(/%/, '')); var newColWidth = (100-ansColWidth)/($('col.odd, col.even', thisQuestion).length-1); $('col.odd, col.even', thisQuestion).attr('width', newColWidth+'%'); // Move the hidden text input into the array $('th.answertext:last', thisQuestion).append($('input[type="text"]', nextQuestion)).closest('tr').addClass('otherRow'); // Initial "N/A" radio setting if($('.otherRow input:radio:checked', thisQuestion).length == 0) { $('.otherRow .na-column input:radio', thisQuestion).trigger('click'); } // Some styling... $('input[type="text"]', thisQuestion).css({ 'width': '50%' }); // Handle the "Other" radios $('input[type="text"]', thisQuestion).on('keyup change',function(event){ event.stopPropagation(); if($.trim($(this).val()) == '') { $('.otherRow input:radio', thisQuestion).prop('checked',false); $('.otherRow .na-column input:radio', thisQuestion).click(); } else { $('.otherRow .na-column input:radio', thisQuestion).prop('checked',false); } }); }); </script>