- Posts: 4
- Thank you received: 0
Ask the community, share ideas, and connect with other LimeSurvey users!
Please Log in to join the conversation.
.no-question { border-top:0; margin-top: -5px; } .no-question .question-title-container, .no-question .question-valid-container { display:none; } .no-bottom { border-bottom:0; margin-bottom:0; } .no-question .answer-container { padding-top: 0em; padding-bottom: 0.5em; } .no-question .question-container { border: none !important; margin-top: -10px !important; } .no-question2 .ls-heading { display:none; } .no-bottom .answer-container { padding-bottom: 0em; }
https://www.limesurvey.org/manual/Workarounds:_Manipulating_a_survey_at_runtime_using_Javascript#varLengthArray_script_(LimeSurvey_6_and_up)
<script type="text/javascript" charset="utf-8"> $(document).on('ready pjax:scriptcomplete',function(){ var thisQuestion = $('#question{QID}'); // Insert selects $('.answer-item.answer_cell_X001', thisQuestion).addClass('with-select').append('<select class="inserted-select form-control list-question-select">\ <option value="">...</option>\ <option value="1">CJ</option>\ <option value="2">GCGP</option>\ <option value="3">GEII</option>\ <option value="4">GMP</option>\ <option value="5">QLIO</option>\ <option value="6">TC</option>\ <option value="7">CS</option>\ <option value="8">GACO</option>\ <option value="9">GEA</option>\ <option value="10">MLT</option>\ <option value="11">INFO</option>\ <option value="12">MP</option>\ <option value="13">RT</option>\ <option value="14">INFOCOM</option>\ <option value="15">MMI</option>\ <option value="16">GCCD</option>\ <option value="17">MT2E</option>\ <option value="18">HSE</option>\ <option value="19">Chimie</option>\ <option value="20">GB</option>\ <option value="21">PEC</option>\ <option value="22">SD</option>\ <option value="23">GIM</option>\ <option value="24">SGM</option>\ </select>'); $('.answer-item.answer_cell_X002', thisQuestion).addClass('with-select').append('<select class="inserted-select form-control list-question-select">\ <option value="">...</option>\ <option value="1">Section 1</option>\ <option value="2">Section 2</option>\ <option value="3">Section 3</option>\ <option value="4">Section 4</option>\ <option value="5">Section 5</option>\ <option value="6">Section 6</option>\ <option value="7">Section 7</option>\ <option value="8">Section 8</option>\ <option value="9">Section 9</option>\ <option value="10">Section 10</option>\ <option value="11">Section 11</option>\ <option value="12">Section 12</option>\ <option value="13">Section 13</option>\ <option value="14">Section 14</option>\ <option value="15">Section 15</option>\ <option value="16">Section 16</option>\ <option value="17">Section 17</option>\ <option value="18">Section 18</option>\ <option value="19">Section 19</option>\ <option value="20">Section 20</option>\ <option value="21">Section 21</option>\ <option value="22">Section 22</option>\ <option value="23">Section 23</option>\ <option value="24">Section 24</option>\ <option value="25">Section 25</option>\ <option value="26">Section 26</option>\ <option value="27">Section 27</option>\ <option value="28">Section 28</option>\ <option value="29">Section 29</option>\ <option value="30">Section 30</option>\ <option value="31">Section 31</option>\ <option value="32">Section 32</option>\ <option value="33">Section 33</option>\ <option value="34">Section 34</option>\ <option value="35">Section 35</option>\ <option value="36">Section 36</option>\ <option value="37">Section 37</option>\ <option value="60">Section 60</option>\ <option value="61">Section 61</option>\ <option value="62">Section 62</option>\ <option value="63">Section 63</option>\ <option value="64">Section 64</option>\ <option value="65">Section 65</option>\ <option value="66">Section 66</option>\ <option value="67">Section 67</option>\ <option value="68">Section 68</option>\ <option value="69">Section 69</option>\ <option value="70">Section 70</option>\ <option value="71">Section 71</option>\ <option value="72">Section 72</option>\ <option value="73">Section 73</option>\ <option value="74">Section 74</option>\ <option value="75">Section 75</option>\ <option value="76">Section 76</option>\ <option value="77">Section 77</option>\ <option value="85">Section 85</option>\ <option value="86">Section 86</option>\ <option value="87">Section 87</option>\ </select>'); // Listeners $('.inserted-select', thisQuestion).on('change', function(i) { if($(this).val() != '') { $(this).closest('.answer-item').find('input:text').val($('option:selected', this).val()).trigger('change'); } else { $(this).closest('.answer-item').find('input:text').val('').trigger('change'); } }); // Returning to page $('.with-select input:text', thisQuestion).each(function(i) { var thisCell = $(this).closest('.answer-item'); var inputText = $.trim($(this).val()); $('select.inserted-select', thisCell).val(inputText); }); // Clean-up styles $('select.inserted-select', thisQuestion).css({ 'max-width': '100%' }); $('.with-select input:text', thisQuestion).css({ 'position': 'absolute', 'left': '-9999em' }); }); </script>
<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 nextQuestion4 = $(thisQuestion).nextAll('.text-short:eq(3)'); var nextQuestion5 = $(thisQuestion).nextAll('.text-short:eq(4)'); var nextQuestions = $(nextQuestion1).add(nextQuestion2).add(nextQuestion3).add(nextQuestion4).add(nextQuestion5); 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': '100%' }); }); </script>[/i]
Please Log in to join the conversation.
Please Log in to join the conversation.
Please Log in to join the conversation.
Perso : ils devraient passer en thème ou plugin coreCela signifie que ces scripts ont été présentés à maintes reprises sur le forum ou qu'ils figurent dans la section « Workarounds » du manuel.
Ils constituent pratiquement la solution standard dans ce genre de cas.
Please Log in to join the conversation.