diff options
Diffstat (limited to 'components/script/dom/htmlformelement.rs')
-rw-r--r-- | components/script/dom/htmlformelement.rs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/components/script/dom/htmlformelement.rs b/components/script/dom/htmlformelement.rs index 46caced7d45..8fa12c02c6c 100644 --- a/components/script/dom/htmlformelement.rs +++ b/components/script/dom/htmlformelement.rs @@ -223,9 +223,11 @@ impl HTMLFormElement { // TODO: This is an incorrect way of getting controls owned // by the form, but good enough until html5ever lands node.traverse_preorder().filter_map(|child| { - if child.r().get_disabled_state() { - return None; + match ElementCast::to_ref(child.r()) { + Some(el) if !el.get_disabled_state() => (), + _ => return None, } + if child.r().ancestors() .any(|a| HTMLDataListElementCast::to_root(a).is_some()) { return None; |