Pro Forms inner nested repeater checkbox/radio ID number increment issue

If you have a nested repeater with either a radio or checkbox, input and the label don’t match so it causes issues

ie.

pro form
– repeater
---- repeater
------ checkbox

So the first item in the repeater has issues

However, when adding additional items, (as in from the frontend when you’re filling out the form), the rest of them are numbered correctly and match

This goes for the cards radio/checkboxes too I believe - and these don’t apply the styling properly either.

Another posssible bug in nested repeaters is whenever we add another of the outer repeater (from the frontend), it clones the number of inner repeaters as well. They’re empty, but clones them regardless.

ex:

repeater 1

    • repeater A
    • repeater B

you click the plus to add another “repeater 1” and you get

repeater 1

    • repeater A
    • repeater B

instead of the expected

repeater 1

    • repeater A

That way the user can add in additional rows as they see fit. Imagine they finish one with 20 inner rows and all of a sudden they have 20 more, but only need 3 in the next set…

Holy hell, so many bugs with this nested repeater crap…

I had to hack at the form on the frontend with js and create a custom php post creation since the repeaters are broken.

Issues encountered:

  • Name attributes not incrementing on first item - First repeater row keeps original name (e.g., org_submit_scope_item) instead of indexed name (org_submit_scope_item-0). Had to write JS to rewrite names on load and after adding rows.
  • Radio buttons reset when names are rewritten - Changing name attributes clears radio selection. Switched to checkboxes with JS enforcing single-selection behavior.
  • aria-checked not updating to false on deselect - When selecting a new radio/checkbox option, the previously selected one’s aria-checked stays “true”. Had to manually set siblings to aria-checked="false" in JS click handler.
  • aria-checked not syncing on clone - Cloned repeater rows copy aria-checked attributes from source instead of reflecting actual checked state. Had to reset after clone.
  • Label for attributes not updating - Cloned rows keep original field IDs in label for attributes, so clicking label focuses wrong field. (Still investigating)
  • Quill editor breaks after name rewriting - Running name fixes on page load breaks Bricksforge’s internal Quill sync. Content field submits as literal “undefined”. Had to add manual Quill-to-hidden-input sync after any DOM changes.
  • Base64 images in Quill content - Images pasted into rich text editor are embedded as base64 with malformed src (missing data: prefix). Had to process content server-side to convert base64 to media library uploads.

I’m not even going to get into the css…