diff options
author | Corey Farwell <coreyf@rwell.org> | 2016-10-13 23:34:55 -0400 |
---|---|---|
committer | Corey Farwell <coreyf@rwell.org> | 2016-10-19 23:35:19 -0400 |
commit | a45e1d9d95831077d3dcaf2cec696c43720a7bd5 (patch) | |
tree | a594c2a1112fe84d17f0213c4c7aeec9289e42c4 /components/script/dom/htmlselectelement.rs | |
parent | 6c28d4446a07fe5f2a6ae90e41ce21b02a04a6a0 (diff) | |
download | servo-a45e1d9d95831077d3dcaf2cec696c43720a7bd5.tar.gz servo-a45e1d9d95831077d3dcaf2cec696c43720a7bd5.zip |
Implement "reset algorithm" for `<select>`.
Diffstat (limited to 'components/script/dom/htmlselectelement.rs')
-rw-r--r-- | components/script/dom/htmlselectelement.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/components/script/dom/htmlselectelement.rs b/components/script/dom/htmlselectelement.rs index 34c9187b644..03d10e117f4 100644 --- a/components/script/dom/htmlselectelement.rs +++ b/components/script/dom/htmlselectelement.rs @@ -84,6 +84,16 @@ impl HTMLSelectElement { HTMLSelectElementBinding::Wrap) } + // https://html.spec.whatwg.org/multipage/#the-select-element:concept-form-reset-control + pub fn reset(&self) { + let node = self.upcast::<Node>(); + for opt in node.traverse_preorder().filter_map(Root::downcast::<HTMLOptionElement>) { + opt.set_selectedness(opt.DefaultSelected()); + opt.set_dirtiness(false); + } + self.ask_for_reset(); + } + // https://html.spec.whatwg.org/multipage/#ask-for-a-reset pub fn ask_for_reset(&self) { if self.Multiple() { |