So, jetzt zur "Alters-Frage".
Ich frage mich zunächst, wieso dort eine fünfstellige Zahl erlaubt sein soll.
Aber egal, das kann ja geändert werden.
Gut,
wir haben zwei "mehrfache kurze Text"-Fragen (Q1a und Q1b)
Um diese per css zusammenzumauscheln, wird dieses script in einer der beiden Fragen eingefügt.
Code:
<style type="text/css">.no-question {
border-top:0;
}
.no-question .question-title-container {
display:none;
}
.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;
}
.no-bottom .answer-container {
padding-bottom: 0em;
}
.no-bottom ul.ls-answers {
margin-bottom :0;
}
.no-bottom .ls-answers {
padding-bottom: 0;
}
.no-question .ls-answers {
padding-top: 0;
}
.no-question .ls-questionhelp::before
{
content: "";
}
no-question .dir-ltr .ls-questionhelp {
margin-left: 0;
}
</style>
Du siehst, es gibt zwei Klassen ("no-question" und "no-bottom")
"no-bottom" soll auf die erste Frage wirken, daher wird hier in "Anzeige / css-Klassen"
no-bottom eingetragen; entsprechend in der zweiten Frage, in welcher ja der Fragecontainer nicht angezeigt werden soll,
no-question.
So weit, so schlecht.
Da mit "no-question auch der "question-valid-container" versteckt wird, kann also keine Fehlermeldung auf normalem Weg angezeigt werden.
Daher habe ich in den "Designvorlage-Einstellungen" den Hilfecontainer nach unten gelegt.
Okay, nun zur Validierung:
Ich habe es einmal ohne RegExp gemacht, einfacher Vergleich
is_empty(Q1b_3) or (Q1b_3>0 and Q1b_3<100000)
Wenn jetzt kein "Validierungshinweis" eingetragen wird, wird auch das Feld im Fehlerfall nicht rot markiert.
Also irgendeinen Text dort hinein ("aaa"). Er wird ja nicht gezeigt.
Und dafür habe ich im Hilfetext folgendes verschachtelte IF benutzt:
{if(!is_empty(Q1b_3) and !is_int(Q1b_3),'<span style="color:red">Nur Zahlen bitte', if(!is_empty(Q1b_3) and (Q1b_3<1 or Q1b_3>99999),'<span style="color:red">Nur Zahlen zwischen 1 und 99999', '<span style="color:transparent">Nur Zahlen zwischen 1 und 99999'))}</span>
Heißt also:
Wenn der Eintrag nicht leer und keine ganze Zahl ist, zeige "Nur Zahlen bitte" an,
ansonsten, wenn der Eintrag nicht leer, und größer als 100000 ist, zeige die andere Meldung an,
und sonst - wenn alles richtig ist - zeige irgendetwas an, aber mit transparenter Schriftfarbe.
Dieses letzte muss sein, da im Falle eines leeren Hilfetextes wieder gar nichts angezeigt wird.
Hier gezeigt in simplem "vanilla"
Beispiel:
Joffm