Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

Matrix Auswahl aufheben

  • Eule10
  • Eule10's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
3 years 10 months ago #201215 by Eule10
Matrix Auswahl aufheben was created by Eule10
Hallo Zusammen,
ich möchte aufgrund der Einheitlichkeit des Fragebogens alle Fragen als Matrix erstellen. Ich möchte auch auf die Option „keine Antwort“ als Antwortkategorie verzichten. Mein Problem besteht nun aber darin, dass wenn ich in einer Zeile eine Antwort ausgewählt habe kann ich diese zwar verändern, aber nicht wieder ausschalten. Gibt es irgendwie eine Möglichkeit, dass durch klicken auf eine bereits gesetzte Antwort, diese einfach wieder ausgeschaltet werden kann (wie bei einer Checkbox)? Solange ich nur eine Antwortkategorie habe kann ich das mittels Matrix(Zahlen) Checkbox realisieren. Wenn ich aber mehrere Antwortkategorien habe, kann ich auch mehrere pro Zeile ausgewählt werden. Ich möchte aber das immer nur eine Antwort pro Zeile ausgewählt werden kann und durch klicken auf eine gesetzte Antwort diese auch vom User wieder ausgeschaltete und nicht nur verändert werden kann. Ich hoffe ich war verständlich und bedanke mich schon einmal fürs Nachdenken eurerseits.
BG,
Eule10
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 10 months ago #201223 by Joffm
Replied by Joffm on topic Matrix Auswahl aufheben
Ja, deshalb heißen die Buttons auch "Radio"-Buttons.
Man kennt es heutzutage vielleicht nicht mehr, aber das ist das Prinzip; man kann eine Taste nur ausschalten, indem man eine andere einschaltet.

Dazu ist nun hier in LimeSurvey diese Option "keine Angabe" bei Nicht-Pflicht-Fragen vorhanden, eben um einen Ausweg zu bieten.

Gut, wenn Du die Frage auf eine Matrix(Zahlen) umstellst, musst Du nur validieren, dass maximal eine Zelle pro Zeile angewählt wurde.

In dieser Art Matrizen benenne ich immer die Zeilen mit "Y001", "Y002",... und die Spalten mit "X001", "X002",...
Das macht es später etwas übersichtlicher als wenn dort "Q1_SQ001_SQ003" als Spaltenüberschrift in der Antworttabelle steht.

Gut, zur Validierung
Im Handbuch findest Du die Erklärung zum Folgenden
manual.limesurvey.org/ExpressionScript_-....22that.22_variables

In die Validierungs-Gleichung im Teil "Logik" fügst Du dies ein:
count(self.sq_Y001.NAOK)<2 and count(self.sq_Y002.NAOK)<2 and count(self.sq_Y003.NAOK)<2 and ...
Es wird also für jede Zeile gestestet, dass die Anzahl kleiner als 2 ist, da Du die leere Zeile ja zulassen willst.
Dann machst Du noch eine "knackige" Meldung in den Tip.

Das war's


Außerdem gibt es hier in den Tiefen des Forums ein workaround, welches auch normale ASrrays mit Radio-Buttons wieder zurückstellt.
Dies ist aber noch sehr tief in meinem alten Gehirn. Ich weiß nicht einmal ob es für Deine Version, die Du uns leider nicht verraten hast, gültig ist.
Aber ich suche einmal.

Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 10 months ago #201226 by Joffm
Replied by Joffm on topic Matrix Auswahl aufheben
Hallo, Eule,
ich habe das erwähnte workaround gefunden.
Es funktioniert zumindest in 3.x.


Dazu einfach dieses javascript in den Fragentext (Quellcode-Modus) einfügen.
Code:
<script type="text/javascript" charset="utf-8">
 
  $(document).on('ready pjax:scriptcomplete',function(){  
 
    var thisQuestion = $('#question{QID}');
 
    // Insert the reset buttons
    $('table.subquestion-list .answertext', thisQuestion).append('<div><button type="button" class="btn btn-sm btn-primary inserted-reset">Lösche Auswahl</button></div>');
 
    // Listener on the reset buttons
    $('.inserted-reset', thisQuestion).on('click', function(e) {
      var thisRow = $(this).closest('tr');
      $('input:radio', thisRow).prop('checked', false);
      checkconditions('', $('input:radio:eq(0)', thisRow).attr('name'), 'radio');
    });
    });
</script>

Du kannst natürlich noch ein bisschen stylen.


Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
  • Eule10
  • Eule10's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
3 years 10 months ago #201227 by Eule10
Replied by Eule10 on topic Matrix Auswahl aufheben
Vielen Vielen Dank,
das hilft wirklich weiter.
BG,
Eule10
The topic has been locked.
Moderators: Joffm

Lime-years ahead

Online-surveys for every purse and purpose