Welcome to the LimeSurvey Community Forum

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

Werteprüfung für Van-Westendorp Slider

  • Lisios
  • Lisios's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
5 days 35 minutes ago - 5 days 27 minutes ago #265596 by Lisios
Ihre LimeSurvey-Version: Version 6.5.14
Eigener Server oder LimeSurvey-Cloud: Cloud Version
Genutzte Designvorlage: Fruity
==================
Hallo,

ich bin völliger Newbie, was LimeSurvey betrifft. Ich habe nun eine Umfrage erstellt, in der wir mittels Van-Westendorp-Methode Preise ermitteln wollen.

Als Fragentyp habe ich "Mehrfache numerische Eingabe" gewählt und vier Teilfragen definiert, in denen die Teilnehmer jeweils einen Preis angeben sollen. Als Darstellungsoption habe ich den Schieberegler gewählt (kein Muss, aber schöner). Nun möchte ich, dass die von den Teilnehmern eingegebenen Werte dahingehend überprüft werden, dass der Wert von Teilfrage 1 > Teilfrage 2 > Teilfrage 3 > Teilfrage 4 sein muss, andernfalls soll ein Hinweis erscheinen.

Ich habe jetzt diverse Anleitungen gefunden und ausprobiert, die das Problem mit JavaScript lösen, aber keine hat funktioniert. Gibt es noch andere Möglichkeiten oder sind die JavaScript-Lösungen nicht mehr aktuell?

Hier eine Lösungen, die ich ausprobiert habe:  manual.limesurvey.org/Workarounds:_Manip...meSurvey_version_3.x

ChatGPT schlägt folgenden Code vor:
Code:
<script type="text/javascript">
$(document).ready(function() {
function validateVanWestendorp() {
var answer1 = parseFloat($('input[name="questioncode_SQ001"]').val());
var answer2 = parseFloat($('input[name="questioncode_SQ002"]').val());
var answer3 = parseFloat($('input[name="questioncode_SQ003"]').val());
var answer4 = parseFloat($('input[name="questioncode_SQ004"]').val());
 
if (isNaN(answer1) || isNaN(answer2) || isNaN(answer3) || isNaN(answer4)) {
return false; // Ensure all inputs are filled
}
if (answer1 > answer2 &amp;&amp; answer2 > answer3 &amp;&amp; answer3 > answer4) {
return true;
} else {
alert('Bitte stellen Sie sicher, dass Antwort 1 > Antwort 2 > Antwort 3 > Antwort 4 ist.');
return false;
}
}
 
$('input[name="questioncode_SQ001"], input[name="questioncode_SQ002"], input[name="questioncode_SQ003"], input[name="questioncode_SQ004"]').on('blur', function() {
validateVanWestendorp();
});
 
$('#movenextbtn').click(function(event) {
if (!validateVanWestendorp()) {
event.preventDefault();
}
});
});
</script>
Last edit: 5 days 27 minutes ago by c_schmitz.

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
4 days 22 hours ago - 4 days 20 hours ago #265605 by Joffm
Replied by Joffm on topic Werteprüfung für Van-Westendorp Slider
Hallo,
zunächst zwei Vorbemerkungen:
1. ChatGPT ist für uns immer ein Quell der Heiterkeit. Soll heißen: ChatGPT hat von Limesurvey keine Ahnung und erfindet sich etwas zurecht.

2. Es gibt eine Fragenvorlage dafür von Tony Partner (tpartner).
Da Du die Cloud-Version nutzt, wirst Du sie wohl nicht installieren können.
EDIT: Ich habe gesehen, dass sie mit Version 6 auch nicht kompatibel ist.

Lösung:
Du validierst die Frage (Fragen-Validierungsgleichung).
Hier wird die Bedingung für eine gültige Antwort eingegeben.
Wie Du schon schriebst:
Q1_1<Q1_2 AND Q1_2<Q1_3 AND Q1_3<Q1_4

Du könntest noch hinzufügen, dass alle Werte nicht leer oder größer als 0 sein müssen, um eine anfängliche Fehlermeldung zu vermeiden.

Dann ein aussagekräftiger Tipp.

Ich habe die Ungleichung versehentlich andersherum geschrieben, da ich gewohnt bin, dass oben der kleinste Wert eingetragen wird.

Joffm 

P.S. Hast Du den richtigen Link gezeigt?
Dort wird doch etwas ganz anderes behandelt.

Bei weiteren Fragen hänge den lss Export an

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

Please Log in to join the conversation.

  • Lisios
  • Lisios's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 days 18 hours ago #265631 by Lisios
Replied by Lisios on topic Werteprüfung für Van-Westendorp Slider
Hallo Joffm,

vielen Dank für die Hilfe. Es funktioniert.

Ich habe nur nicht ganz verstanden, wie ich den Hinweis zu Anfang ausblenden kann. Aktuell erscheint der Hinweis direkt und bleibt auch stehen, wenn die Werte korrekt eingestellt wurden. Er wechselt nur von rot zu blau.

   

Besteht zudem die Möglichkeit den Hinweis darüber "Jede Antwort muss zwischen 1 und 1000 sein" auszublenden?

Besten Dank

Patrick

P.S: Das war der richtige Link:  manual.limesurvey.org/Workarounds:_Manip...dorp_Pricing_Sliders
 

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 days 5 minutes ago - 1 day 23 hours ago #265654 by Joffm
Replied by Joffm on topic Werteprüfung für Van-Westendorp Slider
Hallo,

bleibt auch stehen, wenn die Werte korrekt eingestellt wurden

Das ist ja auch im Grunde der Sinn dieses Hinweises.
Er weist auf die Art der Eingabe hin und wird - im Falle eines Fehlers - rot.

Erster Gedanke zur Nichtanzeige:
In den Einstellungen der Frage den "Hinweis verstecken".
 
ABER: Im Falle eines Fehlers wird der Hinweis zum Eingabebereich ebenfalls wieder angezeigt.
 

Und diese Bereichsmeldung ist ja im Falle eines Sliders absolut unsinnig.
Liegt natürlich daran, dass ein Slider im Hintergrund eine "numerische Eingabe" ist

Zweiter Gedanke:
Den Hinweis mithilfe einer IF-Funktion setzen
{if(Q1_1<Q1_2 OR Q1_2<Q1_3 OR Q1_3<Q1_4,"Bitte, absteigende Werte","")}
Dies beeinflusst allerdings nicht die Bereichsmeldung; nur der Fehlertext zur absteigenden Reihenfolge wird im positiven Fall nicht mehr gezeigt.

Dritte Idee:
Zeige den Container der Fehlermeldungen gar nicht an und erstelle diese im Fragentext.
Wenn Du das Webdevelopment-Tool Deines Briwsers (F12) öffnest, und die Seite untersuchst, siehst Du, dass dieser Container die Klasse "question-valid-container" hat.
Also verstecke ihn mit
Code:
<style>
.question-valid-container {
  display: none;
}
</style>

im Fragentext (Quellcode-Modus)

Dann könntest Du Deine eigene Fehlermeldung im Fragentext unterbringen, also z.B. (etwas übertrieben zur Demo)
{if(Q1_1<Q1_2 OR Q1_2<Q1_3 OR Q1_3<Q1_4,"<span style='color:yellow;font-weight:bold;font-size:18px;'>Bitte, absteigende Werte</span>","")}
 

Trotzdem kann der Fragenvalidierungstipp nicht ganz leer bleiben; es genügt irgendein Zeichen

Ich habe nur nicht ganz verstanden, wie ich den Hinweis zu Anfang ausblenden kann

In der Fragenvalidierungsgleichung steht doch die Bedingung, die erfüllt sein muss, damit die Frage als gültig beantwortet gilt.
Um also am Anfang eine gültigen Wert zu erhalten, musst Du zusätzlich erlauben, dass Teilfragen leer sein dürfen.
Heißt:
(Der Wertevergleich ist in Ordnung) oder (Teilfrage 1 ist leer) oder (Teilfrage 2 ist leer) oder (Teilfrage 3 ist leer) oder (Teilfrage 4 ist leer)
Dass man die Frage mit noch leeren Teilfragen nicht absenden kann, wird ja dadurch verhindert, dass es eine Pflichtfrage ist.

So, viel geschrieben. Jetzt hast Du mehrere Möglichkeiten. Suche eine aus!

Bei weiteren Fragen, bitte schicke den lss Export.
Dann schicke ich ihn mit evtl. Korrekturen zurück.

Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 1 day 23 hours ago by Joffm.

Please Log in to join the conversation.

  • Lisios
  • Lisios's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
1 day 2 hours ago #265670 by Lisios
Replied by Lisios on topic Werteprüfung für Van-Westendorp Slider
Hallo Joffm,

Tausend Dank für die Hilfe. Die dritte Idee ist mein Favorit und ich habe sie wie beschrieben umgesetzt. Es klappt, dass der Container nicht angezeigt wird, aber die Validierung funktioniert nicht bzw. der Hinweis wird einfach nicht eingeblendet.

Anbei der lss-Export.

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
23 hours 10 minutes ago #265680 by Joffm
Replied by Joffm on topic Werteprüfung für Van-Westendorp Slider
Hallo,
ja, da sind noch einige "Klöpse" drin. Aber dafür sind wir ja da.

1. In Deiner Validierungsgleichung steht keine Validierungsgleichung sondern eine Art des Validierungs-Tipps (müsste also dorthin)
Wie ich schrieb

In der Fragenvalidierungsgleichung steht doch die Bedingung, die erfüllt sein muss, damit die Frage als gültig beantwortet gilt.

Das könnte sein: Q1==2 (Frage Q1 muss mit Code 2 beantwortet werden)
In Deinem Fall (allerdings müssen die Ungleichheitszeichen umgekehrt sein):
G02Q07_SQ001>G02Q07_SQ002 OR G02Q07_SQ002>G02Q07_SQ003 OR G02Q07_SQ003>G02Q07_SQ004

2. Du hast es in der Teilfragen-Validierung eingetragen.
Ist klar, es muss in die Fragen-Validierung - Du willst ja die gesamte Frage validieren.
Teilfragen-Validierung ist ein sehr spezielles Ding.
Ein Beispiel: Stelle sicher, dass jede Antwort einer "mehrfachen Zahleingabe" durch 5 teilbar ist.  


3. Im Fragentext steht auch noch gar nichts.
Du hättest das, was Du jetzt als Fragen-Validierungsgleichung genommen hast, in den Fragentext schreiben sollen.

Hier ist Deine Umfrage zurück.

Ich habe die Westendorp-Frage geändert; dabei auch die Fragen- und Teilfragencodes. Ging etwas schneller, und warum immer diese Ungetüme, die von LimeSurvey vorgegeben werden.
In Deinem draft sind die Fragen doch sicher auch anders benannt.
Es gibt im Moment dort zwei Fehlermeldungen;
Die obere schlägt immer an, auch wenn ein Slider oberhalb noch gar nicht bewegt wurde, die zweite erst, wenn alle Slider gesetzt sind.



Kannst Du Dir nun aussuchen.

Außerdem habe ich die Bundesland-Frage einmal auf bootstrap-buttons geändert. Normale Optionsfelder mit 4 Spalten geht natürlich auch.
Für nur 16 Antwort-Optionen den Teilnehmer mehrmals klicken und scrollen zu lassen, erschien mir etwas nervig. 

Und ich habe in der Westendorp-Frage die Teilfragen linksbündig angeordnet.

Solche Dinge findest Du in meinem "Tutorial 1: Matrizen" (irgendwo hier auf Seite 10,11,12,...)
 

File Attachment:

File Name: limesurvey...84_J.lss
File Size:171 KB



Gut, jetzt noch ein paar Hinweise.
1. Deine erste Frage hat den Code "eidkurzerfreiertext". Hier soll ja die vom Panel Provider angefügte Teilnehmer-ID gespeichert werden.
Da dieser Code nicht mit dem Namen des Parameters "eid" übereinstimmt, musstest Du die Panel-Integration bemühen.
Nenne die Frage "eid" und dies ist unnötig.
Außerdem benutzt Du diese Frage auch gar nicht, da Du in der end-url "PASSTHRU" benutzt.
Meine Meinung dazu ist: PASSTHRU ist veraltet, seit es ExpressionScript gibt und ich traue ihm nicht ganz.
Mit Fragencode "eid" genügt
"...&pid=li24049&eid={eid}"
Soll heißen, ist etwas umständlich  gemacht.

2. Und noch zwei sprachliche Dinge , bei denen ich immer ein bisschen zucke. Nimm es mir nicht übel, ich bin eben ein alter Mann!
a. Beschäftigungsstatus der Haupteinkommensperson(en)?
Wenn ich "Hauptperson" lese, ist dies für mich eine Person; das können nicht mehrere sein. Und das Wort selbst ist etwas sperrig.
Und bei den Antwortmöglichkeiten: 
Was ist mit Fach-/Arbeitern, Rentnern und Beamten?
b. Möchten Sie irgendwelche Gedanken über dieses Produkt teilen?
Da sage ich immer "Ich teile nicht, dann habe ich ja nur noch die Hälfte. Aber ich kann Ihnen gerne etwas mitteilen".

Bis dann
Joffm
 

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

Please Log in to join the conversation.

Moderators: Joffm

Lime-years ahead

Online-surveys for every purse and purpose

OSZAR »