@@ -287,9 +287,12 @@ class JoomlaFieldSubform extends HTMLElement {
287287 // Set the id for fieldset and group label
288288 if ( ! countMulti ) {
289289 // Look for <fieldset class="checkboxes"></fieldset> or <fieldset><div class="checkboxes"></div></fieldset>
290- let fieldset = $el . closest ( '.checkboxes' ) ;
290+ let fieldset = $el . closest ( '.checkboxes, fieldset ' ) ;
291291 // eslint-disable-next-line no-nested-ternary
292- fieldset = fieldset . nodeName === 'FIELDSET' ? fieldset : ( fieldset . parentElement . nodeName === 'FIELDSET' ? fieldset . parentElement : false ) ;
292+ if ( fieldset ) {
293+ // eslint-disable-next-line no-nested-ternary
294+ fieldset = fieldset . nodeName === 'FIELDSET' ? fieldset : ( fieldset . parentElement . nodeName === 'FIELDSET' ? fieldset . parentElement : false ) ;
295+ }
293296
294297 if ( fieldset ) {
295298 const oldSetId = fieldset . id ;
@@ -313,10 +316,17 @@ class JoomlaFieldSubform extends HTMLElement {
313316
314317 // Set the id for fieldset and group label
315318 if ( ! countMulti ) {
316- // Look for <fieldset class="radio"></fieldset> or <fieldset><div class="radio"></div></fieldset>
317- let fieldset = $el . closest ( '.radio' ) ;
318- // eslint-disable-next-line no-nested-ternary
319- fieldset = fieldset . nodeName === 'FIELDSET' ? fieldset : ( fieldset . parentElement . nodeName === 'FIELDSET' ? fieldset . parentElement : false ) ;
319+ /**
320+ * Look for one of:
321+ * - <fieldset class="radio"></fieldset>
322+ * - <fieldset><div class="radio"></div></fieldset>
323+ * - <fieldset><div class="switcher"></div></fieldset>
324+ */
325+ let fieldset = $el . closest ( '.radio, .switcher, fieldset' ) ;
326+ if ( fieldset ) {
327+ // eslint-disable-next-line no-nested-ternary
328+ fieldset = fieldset . nodeName === 'FIELDSET' ? fieldset : ( fieldset . parentElement . nodeName === 'FIELDSET' ? fieldset . parentElement : false ) ;
329+ }
320330
321331 if ( fieldset ) {
322332 const oldSetId = fieldset . id ;
0 commit comments