Firefox cancels any JavaScript events at a fieldset[disabled]

If you try to listen to events on elements that are nested inside a <fieldset disabled>, Firefox will stop event propagation once the event reaches the fieldset. Chrome and IE/Edge will propagate events.

Since we often bind event listeners to document this can be annoying.

You could solve it by...

  • ...adding event listeners on elements themselves. Note that this is terrible when you have many elements that you'd register events for.
  • ...adding event listeners on a container inside the <fieldset>, around your elements.
  • ...using a custom attribute, like <fieldset no-edit> and using JavaScript to disable all controls inside it. This works nicely with Unpoly compilers or Angular directives.

See jsbin Show archive.org snapshot for an example.

Arne Hartherz Over 6 years ago