Welcome to the LimeSurvey Community Forum

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

Mehrfachauswahl mit Zwischenüberschriften

More
3 days 6 minutes ago #268224 by jayat
Bitte helfen Sie uns, Ihnen zu helfen und füllen Sie folgende Felder aus:
Ihre LimeSurvey-Version:  LimeSurvey Cloud     Version 6.6.5
Eigener Server oder LimeSurvey-Cloud: LimeSurvey Cloud
Genutzte Designvorlage: Fruity
==================
Liebes Forum,

ich benötige bitte eine Lösung für den Fragetyp "Mehrfachauswahl", wo vor gewissen Item-Gruppen Zwischenüberschriften stehen sollen.
Checkbox soll aber nur bei den Items vorhanden sein, bei den Zwischenüberschriften davor keine Checkbox.
Es gab hierzu schon mal ein Posting -->  forums.limesurvey.org/forum/german-forum...n-und-randomisierung
Das funktioniert auch alles wunderbar im "Vanilla-Theme", ich bräuchte es aber für Fruity und wenn ich die Designvorlage ändere, erscheint bei der Zwischenüberschrift beim Draufklicken dann die Checkbox. Wie kann ich diese gänzlich dort deaktivieren?

 

File Attachment:

File Name: limesurvey...4986.lss
File Size:47 KB
Anbei der lss-export.

Vielen Dank!

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 days 10 hours ago - 2 days 10 hours ago #268227 by Joffm
Replied by Joffm on topic Mehrfachauswahl mit Zwischenüberschriften
Hallo,
die Sache mit der erscheinenden Checkbox liegt an "fruity" bzw. einem nicht vollständigen css (Frag mich mnicht, wieso dies  so sein muss)
In einem alten Thread im niederländischen Teil habe ich den Unterschied schon einmal gezeigt.
[url] forums.limesurvey.org/forum/dutch-forum/...abloon-fruity#209986 [/url]
und folgender.

Soll also heißen: Bei "fruity" muss explizit diese Klasse mit angegeben werden.
Code:
.fruity .hide-pseudo-elements label::before,
.fruity .hide-pseudo-elements label::after {
    display: none;
}
 
.fruity .hide-pseudo-elements .label-text {
    margin-left: -20px;
}


Dann ist mir aufgefallen, dass dies bei mir erscheint (Deine lss einfach importiert)
 

Bitte, beachte immer dies
[url] www.limesurvey.org/manual/ExpressionScri...3%BCsseldefinitionen [/url]
Soll heißen: Korrekte Benutzung von Leerzeichen.

Joffm

P.S.
Im Grunde würde ich diese Frage anders designen.
Die Kapitel beziehen sich auf das "Tutorial 2: Mehrfachnennungen,..."
Ich würde wohl eher mit einer Frage "Mehrfach mit Kommentar" arbeiten.
Header nicht als Teilfrage, sondern als  Text jeweils dazwischenschieben, Kap.2.2.
Überflüssige Kommentare ausblenden , Kap.2.1.
Randomisierung innerhalb der Kategorien mittels "Umfrageweite Randomisierung", Kap. 1.5.
Dazu muss allerdings im script für Mehrfachnennung, "answer-item" in "checkbox-text-item" geändert werden.
Die Randomisierung selbst erledigt man dann in einer Frage vom Typ "kurzer Text" irgendwo am Anfang der Umfrage.
Das ziemlich bekannte script für Randomisierung mittels javascript wird ein bisschen angepasst
Code:
<script type="text/javascript" charset="utf-8">
 
function shuffle(array) {
  var currentIndex = array.length, temporaryValue, randomIndex;
  // While there remain elements to shuffle...
  while (0 !== currentIndex) {
    // Pick a remaining element...
    randomIndex = Math.floor(Math.random() * currentIndex);
    currentIndex -= 1;
    // And swap it with the current element.
    temporaryValue = array[currentIndex];
    array[currentIndex] = array[randomIndex];
    array[randomIndex] = temporaryValue;
  }
  return array;
}
 
$(document).on('ready pjax:scriptcomplete',function(){
  // Fill the arrays
  // Ich habe die Items der ersten Kategorie mit A1, A2,... benannt, A4 ist das "Sonstige
  // Zweite Kategorie analog B1, B2,...
  var arrA = ['A1','A2','A3'];
  var arrB = ['B1','B2','B3'];
 
  //Jetzt werden beide verwürfelt
  arrA = shuffle(arrA);
  arrB = shuffle(arrB);
 
  // An beide arrays wird der "Sonstige"-Code angehäng; er soll ja als letztes Item erscheinen
  arrA.push('A4');
  arrB.push('B4');
  // Und das finale array wird zusammengestellt.
  arrF = arrA.join(',')+ ',' +arrB.join(',');
 
  $('#question{QID} input[type="text"]').val(arrF);
  // Nach dem Testen die nachfolgenden Slashes entfernen, oder die Frage mit der css-Klasse "d-none" verstecken.
  //$('#question{QID}').hide();
});
</script>


Dann kann es so aussehen
 

 

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 2 days 10 hours ago by Joffm.

Please Log in to join the conversation.

More
2 days 9 hours ago - 2 days 7 hours ago #268228 by jayat
Replied by jayat on topic Mehrfachauswahl mit Zwischenüberschriften
Lieber Joffm,

danke für die schnelle Antwort und die Hilfestellung!
Ich habe den Code bei der Fruity-Designvorlage im Custom CSS eingegeben.
Leider ist die Checkbox bei der Kapitelüberschrift noch immer da ;(
Was mache ich falsch?

Und ich bräuchte es insgesamt 8x, also 8 Kapitelüberschriften und dazwischen sind eben immer ein oder mehrere Items mit Checkbox...
Last edit: 2 days 7 hours ago by jayat.

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 days 5 hours ago #268231 by Joffm
Replied by Joffm on topic Mehrfachauswahl mit Zwischenüberschriften
Du musst bei "fruity" noch ein "!important" hinter das "display:none" in "before" und "after" setzen.
Dann geht's schon.

Aber ich verstehe aber nicht, warum Du es immer so kompliziert machst.
Du vergewaltigst eine Teilfrage mit dem zusätzlichen Problem, dass Du mit dem weiteren script noch dafür sorgen musst, dass sie an erster Stelle steht.

Wie schon vorher geschrieben, halte ich es für besser einfach einen Text als Header zu nehmen.
Dann hast Du keine Sorgen bezüglich der Reihenfolge.

Im Gegensatz zum script im Tutorial, Kap. 2.2. muss hier "checkbox-text-item" zu "checkbox-item" geändert werden - es handelt sich schlisßlich nicht um eine "Mehrfachnennung mit Kommentar"
Code:
<script type="text/javascript" charset="utf-8">
    $(document).ready(function() {
        var SubHeading1="Eher ausführlich, und zwar durch:";
        var thisQuestion = $('#question{QID}');
 
        // Insert sub-headings
        $('.checkbox-item:eq(0)', thisQuestion).before('<li class="inserted-sub-heading"><span class="myHeader">'+SubHeading1+'</span></li>');
    });
</script>

Das css kann man natürlich auch hart in die Definition von "SubHeading1" schreiben; aber so als Klasse ist es flexibler und muss im Ernstfall nur an einer einzigen Stelle angepasst werden.
Code:
<style type="text/css">.myHeader {
    color:maroon;
    font-size:120%;
    background-color:#F8F8FF;
    border:1px solid #ccc;
    padding: 1px 5px;
  }
</style>

 

Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless

Please Log in to join the conversation.

Moderators: holchJoffmtpartner

Lime-years ahead

Online-surveys for every purse and purpose