Bug #6467
closedSanitizing a hidden field makes the form unsubmittable
100%
Description
Sanitizing a field hidden by dynamic updates as email makes the form unsubmitable. (The email field seems to be checked even when hidden.)
Code for the example form attached.
Files
Updated by Carsten Rose over 5 years ago
- Assignee set to Carsten Rose
- Priority changed from Normal to High
- Target version changed from next7 to 18.12.0
Updated by Carsten Rose over 5 years ago
- Status changed from In Progress to New
- Assignee changed from Carsten Rose to Benjamin Baer
Input Felder die hidden sind, sollten im Client nicht auf Gueltigkeit geprueft werden:
Bei 'required' tritt der Fehler nicht auf.
Getestet werden kann auf 'http://webwork16.math.uzh.ch/crose/qfq/index.php?id=form' im Form
'test_hidden-sanitize'
- Aufruf im FormEditor.
- Dann auf das Auge klicken.
Updated by Carsten Rose over 5 years ago
- Target version changed from 18.12.0 to 18.12.1
Updated by Benjamin Baer over 5 years ago
- File email2.png email2.png added
- File email1.png email1.png added
- Das Formular funktionierte, das Problem beschreibt einen Fehler bei checktype="email" (und vermutlich anderen Patterns). Formular entsprechend angepasst
- Das ElementUpdate setzt nicht nur die value auf "!!email!!" wie man hier sieht:
- Es setzt entfernt auch nicht das Attribut pattern beim entfernen:
- Attribut pattern entfernen in dem eine NULL oder false value gesendet wird (wie bei required).
Updated by Benjamin Baer over 5 years ago
- Status changed from New to In Progress
- Assignee changed from Benjamin Baer to Carsten Rose
Updated by Carsten Rose over 5 years ago
- File qfq.pattern.empty.png qfq.pattern.empty.png added
- File qfq.pattern.false.png qfq.pattern.false.png added
- Assignee changed from Carsten Rose to Benjamin Baer
Hallo Benj
danke fuer die Analyse.
Neu wird "pattern='false'" (zum Test auch "pattern" ohne alles) sowohl im 'form-update' als auch im 'element-update' mitgeschickt.
Das Problem besteht aber weiterhin. Beim Click auf Save erscheint sofort die Melung 'form incomplete - es wird nicht mit dem Server geredet.
Interessant ist das im DOM das Feld 'pattern' wie gewuenscht gesetzt ist (Siehe qfq.pattern.empty.png, qfq.pattern.false.png.) . Das war vor meiner Code Aenderung nicht der Fall.
Kann es sein das qfq.io eigene Datenstrukturen hat um durch die Elemente zu parsen? Ich meine Rafi haette das mal erzaehlt.
Fuer mich sieht es so aus als wenn Du wieder an der Reihe bist.
Vielen Dank
CU
Carsten
Updated by Benjamin Baer over 5 years ago
also, pattern="false" darf nicht drinstehen. Pattern sollte gar nicht dort sein. pattern = "false" sollte also nie ausgeliefert werden.
Im json sollte pattern: false stehen. Ohne "". Boolean, nicht string.
QFQ redet mit dem Server vor dem Save click, das ist die idee von Element Update. Es ist nicht das Javascript das Felder versteckt und anzeigt, es ist immer PHP der das instruiert.
Es sollte nie ein hidden Feld pattern oder required haben. Weder in der ersten auslieferung, noch nach einem Element Update. Ansonsten geht save nicht.
Updated by Benjamin Baer over 5 years ago
- Due date changed from 10.12.2018 to 21.12.2018
- Assignee changed from Benjamin Baer to Carsten Rose
Javascript Seite soweit erledigt
Updated by Carsten Rose over 5 years ago
- Status changed from In Progress to Closed
- % Done changed from 0 to 100
Applied in changeset typo3-qfq|4309bed73a92709a6675ae7d6f8903387cd5f9ea.