DataTable nests `<form>` inside `<form>`

Ouverte
#537 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
68/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
javascript, ruby
Domaine
frontend, testing

Piste de recherche

Commencez par DataTableForm, DataTableSearch, DataTablePerPageSelect et data_table_search_controller.js, puis examinez le snapshot data_table/full_frame et les autres snapshots data_table. Confirmez la structure du formulaire rendu et la manière dont requestSubmit() sélectionne sa cible. C’est terminé lorsque les templates 2.0 évitent les formulaires imbriqués et que les snapshots data_table/* sont réenregistrés et vérifiés avec la sortie corrigée.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

bug
  • Where: DataTableForm wraps the table; DataTableSearch and
    DataTablePerPageSelect each render their own <form> inside it.
    Snapshot data_table/full_frame holds three <form elements.
  • Effect: nested forms are invalid HTML. The parser ignores the nested
    search form's start tag — with its attributes and its
    data-controller="ruby-ui--data-table-search" — and its end tag closes the
    outer bulk form early, so the search controller never connects and the
    per-page form that follows ends up outside the bulk form. The controller's
    this.element.requestSubmit() therefore never runs at all. (The golden
    snapshot keeps all three forms because the suite parses inside a
    <template>, where the form-pointer rule does not apply.)
  • Fix: render the search and per-page forms outside the bulk form, or
    make their controls reference it with the form= attribute; re-record (on the 2.0 line)
    data_table/*.
  • 2.0 note: Herb's NestingValidator will likely reject this at compile
    time, so the DataTable migration ports the three forms as they are and then
    restructures them — a template adjustment with a reviewed snapshot change,
    on the 2.0 line, since main stays as is.

Surfaced by the golden HTML suite (PR #536), which pins what 1.6 renders today — this defect included. Per maintainer decision (2026-09-19) main stays as is: this is addressed on the 2.0 line, and the golden snapshot that pins it is re-recorded there with the diff reviewed.

Source: design/v2/follow-up-issues.md.

Langage dominant
Ruby
Étoiles
1k
Forks
67
Merge moyen
2 j 19 h
PR mergées (30 j)
18

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de ruby-ui/ruby_ui

Toutes les issues de ruby-ui/ruby_ui

Issues similaires

Plus d'issues Ruby

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.