Implement "reset algorithm" for <select>.

This commit is contained in:
Corey Farwell 2016-10-13 23:34:55 -04:00
parent 6c28d4446a
commit a45e1d9d95
2 changed files with 11 additions and 2 deletions

View file

@ -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() {