Forms API – Full FormData + Form Submission + Validation Pipeline #122
Labels
No labels
bug
docs
feature
housekeeping
html-spec
performance
react-compat
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
glow-all/true-headless-browser#122
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Gap
Form submission ist eine unserer groessten Luecken. 11 Tests failen aktuell wegen Form-Action/SubmitEvent-Problemen. Fuer korrekte Webseiten-Interaktion brauchen wir die volle Forms API.
Was fehlt
1. FormData (vollstaendig)
FormDataKonstruktor: FormData(form) - initialisiert aus Form-Elementen.append(name, value)/.append(name, blob, filename).delete(name).get(name)/.getAll(name).has(name).set(name, value).entries()/.keys()/.values()/[Symbol.iterator]().forEach()2. HTMLFormElement (vollstaendig)
.elements- HTMLFormControlsCollection (lebt, aktualisiert bei DOM-Aenderungen).length- Anzahl Controls.name/.method/.action/.enctype/.target/.acceptCharset.submit()- Programmgesteuerter Submit.requestSubmit(submitter)- Spec-konformer Submit (feuert submit event, formdata event).reset()- Reset auf default values.checkValidity()/.reportValidity()- Constraint Validation.novalidate/.encoding3. HTMLInputElement (Form-relevante Properties)
.form- Assoziiertes Form (readonly, live).value/.defaultValue/.valueAsDate/.valueAsNumber.checked/.defaultChecked/.indeterminate.name/.type/.accept/.multiple/.files.validity/.validationMessage/.willValidate.setCustomValidity(message).step/.stepUp()/.stepDown()/.min/.max.selectionStart/.selectionEnd/.selectionDirection.select()/.setRangeText()/.setSelectionRange().labels- Assoziierte Label-Elemente4. Constraint Validation API
ValidityStateInterface: valueMissing, typeMismatch, patternMismatch, tooLong, tooShort, rangeUnderflow, rangeOverflow, stepMismatch, badInput, customError, valid.checkValidity()auf form/input/select/textarea/button/fieldset.reportValidity()- wie checkValidity + feuert invalid eventinvalidEvent5. Submit-Event Pipeline
submitEvent feuert auf form (kann preventDefault() werden)formdataEvent feuert (kann FormData modifizieren)6. Button/Input Type Behavior
<input type="submit">- Submit-Trigger<input type="reset">- Reset-Trigger<input type="button">- Noop<button type="submit">vs<button type="button">formAttribut auf Button/Input (form-Attribut, nicht nur Parent-Form)Labels
feature, html-spec
Architektur
Tests