Hallo, Marion, nicht so schnell.
1. Ich konnte das Datepicker-Problem in der LimeSurvey-Cloud reproduzieren.
Ich weiß zwar, woran es liegt - der rootPath ist nicht so wie erwartet.
Aber das nützt jetzt wenig.
Ich hatte ja schon bei Deiner vorigen Frage geschrieben, dass mir dieser Datepicker sowieso nicht gefällt.
Du könntest z.B. eine Eingabemaske erstellen; ist im "Tutorial 3: Gimmicks": gezeigt (zwei verschiedene Möglichkeiten)
Dies muss natürlich beides validiert werden, da man auch den 67.23.0023 eingeben könnte.
Und: Ist der Geburtstag eigentlich wichtig? Genügt nicht das Alter? naja, Deine Sache.
Jetzt ein Wort zu Deinen Validierungsversuchen.
Laut Handbuch erwartet die Funktion "is-empty(var)" einen Parameter, der überprüft wird, ob er leer ist oder nicht.
Determine whether a variable is considered to be empty: bool is_empty(var)
Die Variable "self" ist eine Kurzform für die gesamte Frage.
Wie Du siehst expandiert sie zu allen Zellen.
is_empty(self) bekommt damit eine ellenlange Liste von Parametern.
Jetzt hast Du zwar eingeschränkt durch self.sq_1_X002.NAOK
Aber diese Parameter hinter "sq" bedeuten: "Nimm alles, was diesen Parameter enthält"
Also alle Zeilen, die als Code eine "1" enthalten, 1, 10, 11, 12, 13,..., 21,...
Diese müssen also auch eindeutig sein, wie "Y01", "Y02",...;"Y10", "Y11".
In diesem Falle könntest Du natürlich alle Gleichungen direkt mit dem QCode schreiben (Du sparst ja keine Zeile); ein Vorteil von "self" ist aber noch, dass Du Dich nicht darum kümmern musst, falls Du die Frage einmal umnennst ("self" enthält immer den aktuellen Fragecode).
Der große Vorteil zeigt sich erst, wenn Du auf bestimmte Teile einer Matrix zugreifen willst.
Beispiel: Matrix mit reversen Items.
Wenn Du dann die normalen Teilfragen mit "N01", "N02", die reversen mit "R01", "R02",... codierst, hast Du mit self.sq_R bzw. self.sq_N genau die gewünschten Items.
Noch ein Letztes.
Dir drei ersten Fragen dieser Gruppe.
Ich hatte bei Deiner vorigen Frage die mittlere dieser drei breiter gemacht, da hier ja ein Drop-Down mit langen Items war.
Dies ist jetzt nicht der Fall, und die linke Frage ist dadurch sehr "gepresst".
Entferne daher dieses aus der ersten und dritten Frage
Code:
div #question{QID} {
width:50%
}
Jetzt musst Du Dich entscheiden, was Du mit dem Geburtsdatum machst (Du kannst es auch einfach eingeben lassen) und dann mit einer regulären Expression validieren wie
^\s*(3[01]|[12][0-9]|0?[1-9])\.(1[012]|0?[1-9])\.((?:19|20)\d{2})\s*$
Wäre dann die Funktion "regexMatch".
So, jetzt schaue ich mir einmal Deine neue Datei an.
Edit: Na, das ging schnell.
Der "Listener"-Block ist nicht abgeschlossen.
Dort fehlt ein
});
Oder umgekehrt gesagt: Vor "Returning to page"
Wenn in der Überschrift steht "0-10", sollte die Skala doch auch bei 0 starten.
Wie gesagt, einige Dich bezüglich des Datums; dann schicke ich einmal meinen Vorschlag dazu.
Bis dann
Joffm