Welcome to the LimeSurvey Community Forum

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

Validierungshinweis warnt schon nach Laden der Webseite ohne Eingabe

  • RainerM
  • RainerM's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
1 year 9 months ago #229934 by RainerM
Bitte helfen Sie uns, Ihnen zu helfen und füllen Sie folgende Felder aus:
Ihre LimeSurvey-Version: 3.28.17
Eigener Server oder LimeSurvey-Cloud: Cloud

Genutzte Designvorlage: Vanilla
==================
Liebe LimeSurvey Gemeinde,

seit ca. 1 Monat arbeite ich mit LimeSurvey.

In meiner letzten Aufgabe habe ich eine Veranstaltungsregistrierung gebastelt. Soweit lief das alles gut.

Ein Wunsch des Kunden war jedoch dann, dass bei der Registrierung:

a) die Email wiederholt wird und auf Korrektheit geprüft wird
b) Das eingegebene Geburtsdatum dem Format entspricht: TT.MM.JJJJ


Ich habe dass rausgefunden wie das funktioniert und nach viel "try and error" folgenden Code produziert, der auch wunderbar arbeitet:

=11.0ptAnmeld1_SQ006==Anmeld1_SQ007 and (regexMatch('/([0-9]{2}\.[0-9]{2}\.[0-9]{4})/',Anmeld1_SQ005)) and (regexMatch('/^.+?@.+?\..+$/',Anmeld1_SQ006))
Übrigens: Ich benutze den Fragetyp: Mehrfache kurze Texte.

Der Code funktioniert sowohl wenn ich ihn in bei seiner Frage (unter "Logik") in das Feld "Frage-Validierungsgleichung" einsetze, als auch wenn ich ihn in unter "Teilfragen-Validierungsgleichung" einsetze.

Nun habe ich unter "Frage Validierungshinweis (de)" den Satz eingegeben:
"Die Email-Adresse muss korrekt wiederholt werden und das Geburtsdatum muss dem Format TT.MM.JJJJ entsprechen. Bitte prüfen Sie."

Mein Problem: Sobald ich die Seite nun aufrufe, kommt direkt der rote Warnhinweis und alle Sub-Fragen werden rot markiert, obwohl nur 2, max. 3 Felder betroffen sein sollten. Es wurde also noch nichts eingegeben und er warnt bereits. Sind alle Eingaben korrekt, wird der Hinweis blau und bleibt weiter sichtbar. Technisch gesehen funktioniert also alles. Ich habe nun nur die Sorge, dass der direkte rote Hinweis Leute, die sich registieren wollen, etwas verwirrt, so dass sie denken sie hätten was falsch gemacht, wobei nur das Programm etwas übereifrig arbeitet.

Technischer Hinweis: Nehme ich die beiden regular expression-Parts raus und lasse nur =11.0ptAnmeld1_SQ006==Anmeld1_SQ007 im Code, funktioniert alles einwandfrei: Keine Warnung, erst wenn Fehler in der Eingabe auftritt kommt die Warnmeldung.

Ziel: Gut wäre, wenn:
- die Seite erst warnt, sobald ich was ins Kästchen schreibe, was nicht der Validierung entspricht und nicht bereits beim laden der Seite
- (Bonus) man ggf. die Hinweise trennen könnte, also wenn es einen Fehler in der Email-Eingabe gibt "Bitte Mail prüfen" auftaucht und wenn es einen Fehler in der Schreibweise des Datums gibt entsprechend: "Bitte Schreibweise Geburtstag beachten." 

Ich hoffe ich habe das Problem verständlich geschildert und danke für Unterstützung.

Herzlichen Gruß, Rainer
 

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
1 year 9 months ago - 1 year 9 months ago #229936 by Joffm
Hallo, Rainer,

dann hänge doch bitte einen lss Export dieser relevanten Fragen an.
Ich werde jetzt nicht versuchen, Dein Werk nachzubauen.
Also:
  • Umfrage kopieren
  • Alle uninteressanten Fragen/Gruppen löschen
  • Dies als lss Export anhängen

Generell gesagt:
Diese Dinge sind nicht trivial.
Du musst immer die gültigen Bedingungen angeben.
Was gilt bei der E-Mail-Adresse? Entweder ist eine noch leer oder beide sind nicht leer und stimmen überein.
Denn dass am Ende beide gefüllt sind, wird ja durch die Pflichtfrage erzwungen.

Und zu Deiner Verrenkung mit dem Datum:
Lies einmal mein "Tutorial 2: Mehrfachnennungen,...". Kapitel 3.1.
Dort wird ein Datepicker in eine "mehrfache kurze Texte"-Frage gesetzt.

Oder auch "Tutorial 3: Gimmicks..." Kapitel 5 über Eingabemasken.

Bis dann
Joffm
 

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 1 year 9 months ago by Joffm.
The following user(s) said Thank You: RainerM

Please Log in to join the conversation.

  • RainerM
  • RainerM's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
1 year 9 months ago - 1 year 9 months ago #229937 by RainerM
Lieber Joffm,

danke für deine Unterstützung. Jetzt hab ich auch mal eine Umfrage exportiert (s. Anhang).

Deine Tutorials schaue ich mir heute Abend mal an.

Viele Grüße, Rainer

EDIT: Dein Hinweis zu den gültigen Bedingungen hat mich nochmal auf etwas gebracht: Natürlich meckert das Programm nicht beim Aufrufen der Webseite, wenn die einzige Bedingung Mail1 == Mail2 ist: Solange beide leer sind, sind sie gleich. Bei den regular expression parts erfüllen die leeren Felder nicht die geschilderten Bedingungen an die geforderten Inhalte - das sollte die sofortige Hinweismeldung versursachen.


 

File Attachment:

File Name: limesurvey...9232.lss
File Size:36 KB
Last edit: 1 year 9 months ago by RainerM.

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
1 year 9 months ago #229939 by Joffm
Nimm mal dieses; man kann es natürlich noch weiter treiben.
Ichhabe in Q1 geändert; das andere war mir zu viel Schreibkram.
Validierungsgleichung:
(is_empty(Q1_SQ006) and is_empty(Q1_SQ007)) or (!is_empty(Q1_SQ006) and regexMatch('/^.+?@.+?\..+$/',Q1_SQ006) and !is_empty(Q1_SQ007) and regexMatch('/^.+?@.+?\..+$/',Q1_SQ007) and Q1_SQ006==Q1_SQ007)

Möglicher Hinweis:
{if(!is_empty(Q1_SQ006) and !regexMatch('/^.+?@.+?\..+$/',Q1_SQ006),"Email1 nicht korrekt",if(!is_empty(Q1_SQ007) and !regexMatch('/^.+?@.+?\..+$/',Q1_SQ007),"Email2 nicht korrekt",if(!is_empty(Q1_SQ006) and regexMatch('/^.+?@.+?\..+$/',Q1_SQ006) and is_empty(Q1_SQ007),"Bitte, wiederholen Sie die E-Mail-Adresse",if(!is_empty(Q1_SQ006) and regexMatch('/^.+?@.+?\..+$/',Q1_SQ006) and !is_empty(Q1_SQ007) and regexMatch('/^.+?@.+?\..+$/',Q1_SQ007) and Q1_SQ006!=Q1_SQ007,"Die Email-Adressen stimmen nicht überein","Die Email-Adresse muss korrekt wiederholt werden und das Geburtsdatum muss dem Format TT.MM.JJJJ entsprechen."))))}

Gibt dann so etwas:

  

  

  

  
 
  
Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The following user(s) said Thank You: RainerM

Please Log in to join the conversation.

  • RainerM
  • RainerM's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
8 months 2 weeks ago #245669 by RainerM
Lieber Joffm, etwas spät aber daher umso substanzieller:

Vielen Dank für den seiner Zeit gegebenen Tipp. Immer wenn ich mal wieder so ähnliche Probleme habe, komme ich hierhin zurück und nutze deinen Code als Grundlage, um mich in das neue Problem reinzudenken.

Das war super nützlich und dank diesem habe ich endlich auch praktisch den Unterschied zwischen verschachtelten Wenn-dann-Formeln und hintereinandergeschalteten verstanden.

Großes Lob, Rainer

Please Log in to join the conversation.

Moderators: Joffm

Lime-years ahead

Online-surveys for every purse and purpose