I am working on a somewhat larger html5 form in a Gatsby site and was wondering if there is a better way to name checkboxes/radio buttons. According to the docs and what I read here each input has to have a unique name which works fine for text-fields and even dropdowns but for checkboxes and radio buttons this gets messy quite quickly.
Will then turn into âAnrede Herr: Herrâ and âAnrede Frauâ in the Netlify UI.
In a form with multiple checkbox groups with a couple values each it gets unusable. Is there any way to only see one name for the fieldset and the user selected value(s)?
Thank you! Works like a charm.
I got tripped up by some gatsby-netlify-forms-problems I had and thought the name not being unique was the reason. Maybe you could also add this to the example in the docs just in case somebody else has this question.
Iâm using a fieldset and legend and itâs still not showing up properly in the Forms UI. Is there something simple like these extra divs tripping up the parser?
<fieldset>
<legend class="mb-2">
<div class="label is-active">What are you thinking about these days?</div>
</legend>
<div class="mb-2">
<label class="inputRadio-module--radio--1U9Wi" for="contact-form-option-1"
><input
class="screen-reader-only"
type="radio"
name="topic"
id="contact-form-option-1"
value="Taking my company into the future"
/><span>Taking my company into the future</span></label
>
</div>
<div class="mb-2">
<label class="inputRadio-module--radio--1U9Wi" for="contact-form-option-2"
><input
class="screen-reader-only"
type="radio"
name="topic"
id="contact-form-option-2"
value="Making my brand mean more"
/><span>Making my brand mean more</span></label
>
</div>
<div class="mb-2">
<label class="inputRadio-module--radio--1U9Wi" for="contact-form-option-3"
><input
class="screen-reader-only"
type="radio"
name="topic"
id="contact-form-option-3"
value="Crafting emotional experiences"
/><span>Crafting emotional experiences</span></label
>
</div>
<div class="mb-2">
<label class="inputRadio-module--radio--1U9Wi" for="contact-form-option-4"
><input
class="screen-reader-only"
type="radio"
name="topic"
id="contact-form-option-4"
value="Designing a new product"
/><span>Designing a new product</span></label
>
</div>
<div class="mb-2">
<label class="inputRadio-module--radio--1U9Wi" for="contact-form-option-5"
><input
class="screen-reader-only"
type="radio"
name="topic"
id="contact-form-option-5"
value="Something else"
/><span>Something else</span></label
>
</div>
</fieldset>
This may be a good recommendation for forms to work fine with the Netlify parser, but it propagates bad markup: some screen readers wonât be able to announce input fields like that. is the correct way to go, and if Netlify is not able to parse this correctly, I suggest it learns to do so
I guess it currently doesnât parse correctly because at least in my case I encounter problems.
Has there been any update on this feature? Wrapping a checkbox/radio isnât always possible or desired. Bootstrap for example doesnât wrap them, and the accessibility factor is super important. Wrapping checkboxes/radios in a fieldset with a legend should be more than enough to use the legend as the text instead of the first labelâs content.
I find the checkbox handling a bit bizarre (havenât tested radio buttons but Iâm assuming itâs the same) Theyâre not documented at all and the closest thing we have is âwe recommend something like what Dennis postedâ
To be clear, the issue isnât that the checkbox data is not making it through, just the resulting data formatting is cryptic and passing it to someone else requires a small manual and bunch of excuses on my part.
AFAIK using the same names for all checkbox inputs (in the same group) and vary the value is the standard way to do it. But the email will use the title from the first checkbox as the title for the list of checkboxes. This leads to confusion, because it might seem like the first option was checked.
Here is my workaround solution for anyone else feeling frustrated by this.
Option #1. handle your forms using edge functions
Option #2. Add a hidden input as the first option. This will also change the label, as it will now ignore the label and use the name instead. To solve for that, use the desired label as the name in a kebab-case.
As someone who just ran into this issue while attempting to use radio fields with Bootstrap I found it frustrating that Netlify doesnât simply use the radio inputâs name value as the field label on form submissions when displayed in e-mail notifications and through the web admin console.
Iâve also noticed discrepancies in how form submissions with non label wrapped radio fields are displayed within the web admin console vs. e-mail notifications.