<!DOCTYPE html> <html> <body> <fieldset id="outer"> <fieldset id="inner"> </fieldset> </fieldset> </body> </html> <script> function appendTextareaToFieldset(fieldset) { var textarea = document.createElement("textarea"); textarea.setAttribute("required", ""); fieldset.appendChild(textarea); } var innerFieldset = document.getElementById('inner'); var outerFieldset = document.getElementById('outer'); var fieldset = document.createElement('fieldset'); appendTextareaToFieldset(fieldset); appendTextareaToFieldset(fieldset); appendTextareaToFieldset(fieldset); appendTextareaToFieldset(fieldset); // Adding a fieldset to a nested fieldset. innerFieldset.appendChild(fieldset); appendTextareaToFieldset(fieldset); appendTextareaToFieldset(fieldset); // This triggers mInvalidElementsCount checks in outer fieldset. appendTextareaToFieldset(outerFieldset); // Removing a fieldset from a nested fieldset. innerFieldset.removeChild(fieldset); // This triggers mInvalidElementsCount checks in outer fieldset. appendTextareaToFieldset(outerFieldset); </script>