Skip to content

DataTable nests <form> inside <form> #537

Description

@cirdes
  • 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions