mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Implement support for modifying the type attribute of button elements. Fixes #9091.
This commit is contained in:
parent
d6d70feabd
commit
ffc1c777fe
2 changed files with 17 additions and 9 deletions
|
@ -27,7 +27,6 @@ use string_cache::Atom;
|
|||
use util::str::DOMString;
|
||||
|
||||
#[derive(JSTraceable, PartialEq, Copy, Clone)]
|
||||
#[allow(dead_code)]
|
||||
#[derive(HeapSizeOf)]
|
||||
enum ButtonType {
|
||||
Submit,
|
||||
|
@ -50,7 +49,6 @@ impl HTMLButtonElement {
|
|||
htmlelement:
|
||||
HTMLElement::new_inherited_with_state(IN_ENABLED_STATE,
|
||||
localName, prefix, document),
|
||||
//TODO: implement button_type in attribute_mutated
|
||||
button_type: Cell::new(ButtonType::Submit)
|
||||
}
|
||||
}
|
||||
|
@ -162,6 +160,22 @@ impl VirtualMethods for HTMLButtonElement {
|
|||
}
|
||||
}
|
||||
},
|
||||
&atom!("type") => {
|
||||
match mutation {
|
||||
AttributeMutation::Set(_) => {
|
||||
let value = match &**attr.value() {
|
||||
"reset" => ButtonType::Reset,
|
||||
"button" => ButtonType::Button,
|
||||
"menu" => ButtonType::Menu,
|
||||
_ => ButtonType::Submit,
|
||||
};
|
||||
self.button_type.set(value);
|
||||
}
|
||||
AttributeMutation::Removed => {
|
||||
self.button_type.set(ButtonType::Submit);
|
||||
}
|
||||
}
|
||||
}
|
||||
_ => {},
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue