mirror of
https://github.com/servo/servo.git
synced 2025-07-23 15:23:42 +01:00
Implement "reset algorithm" for <select>
.
This commit is contained in:
parent
6c28d4446a
commit
a45e1d9d95
2 changed files with 11 additions and 2 deletions
|
@ -634,8 +634,7 @@ impl HTMLFormElement {
|
||||||
// {}
|
// {}
|
||||||
//}
|
//}
|
||||||
NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLSelectElement)) => {
|
NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLSelectElement)) => {
|
||||||
// Unimplemented
|
child.downcast::<HTMLSelectElement>().unwrap().reset();
|
||||||
{}
|
|
||||||
}
|
}
|
||||||
NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTextAreaElement)) => {
|
NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTextAreaElement)) => {
|
||||||
child.downcast::<HTMLTextAreaElement>().unwrap().reset();
|
child.downcast::<HTMLTextAreaElement>().unwrap().reset();
|
||||||
|
|
|
@ -84,6 +84,16 @@ impl HTMLSelectElement {
|
||||||
HTMLSelectElementBinding::Wrap)
|
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
|
// https://html.spec.whatwg.org/multipage/#ask-for-a-reset
|
||||||
pub fn ask_for_reset(&self) {
|
pub fn ask_for_reset(&self) {
|
||||||
if self.Multiple() {
|
if self.Multiple() {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue