Project

General

Profile

Actions

Bug #6467

closed

Sanitizing a hidden field makes the form unsubmittable

Added by Nicola Chiapolini over 5 years ago. Updated over 5 years ago.

Status:
Closed
Priority:
High
Assignee:
Carsten Rose
Target version:
Start date:
02.08.2018
Due date:
21.12.2018
% Done:

100%

Estimated time:
Discuss:
Prio Planung:
Vote:

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

test_setup.sql test_setup.sql 2.94 KB Nicola Chiapolini, 02.08.2018 10:44
email2.png View email2.png 58.4 KB Benjamin Baer, 10.12.2018 11:12
email1.png View email1.png 80.4 KB Benjamin Baer, 10.12.2018 11:12
qfq.pattern.false.png View qfq.pattern.false.png 108 KB Carsten Rose, 11.12.2018 23:47
qfq.pattern.empty.png View qfq.pattern.empty.png 109 KB Carsten Rose, 11.12.2018 23:47
Actions #1

Updated by Carsten Rose over 5 years ago

  • Target version set to next7
Actions #2

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
Actions #3

Updated by Carsten Rose over 5 years ago

  • Status changed from New to In Progress
Actions #4

Updated by Carsten Rose over 5 years ago

  • Status changed from In Progress to New
Actions #5

Updated by Carsten Rose over 5 years ago

  • Status changed from New to In Progress
Actions #6

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.
Actions #7

Updated by Carsten Rose over 5 years ago

  • Due date set to 10.12.2018
Actions #8

Updated by Carsten Rose over 5 years ago

  • Target version changed from 18.12.0 to 18.12.1
Actions #9

Updated by Benjamin Baer over 5 years ago

  • 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:
Vorschlag:
  • Attribut pattern entfernen in dem eine NULL oder false value gesendet wird (wie bei required).
Actions #10

Updated by Benjamin Baer over 5 years ago

  • Status changed from New to In Progress
  • Assignee changed from Benjamin Baer to Carsten Rose
Actions #11

Updated by Carsten Rose over 5 years ago

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

Actions #12

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.

Actions #13

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

Actions #14

Updated by Carsten Rose over 5 years ago

  • Status changed from In Progress to Closed
  • % Done changed from 0 to 100
Actions

Also available in: Atom PDF