mirror of
https://github.com/servo/servo.git
synced 2025-07-25 16:20:36 +01:00
form submission for <textarea> and <select>
small changes from code review !child.get_disabled_state() becomes child.get_enabled_state()
This commit is contained in:
parent
2bb6ea1321
commit
1f234af2ac
3 changed files with 47 additions and 17 deletions
|
@ -14,7 +14,7 @@ use dom::document::Document;
|
|||
use dom::element::{AttributeMutation, Element};
|
||||
use dom::htmlelement::HTMLElement;
|
||||
use dom::htmlfieldsetelement::HTMLFieldSetElement;
|
||||
use dom::htmlformelement::{FormControl, HTMLFormElement};
|
||||
use dom::htmlformelement::{FormControl, FormDatum, HTMLFormElement};
|
||||
use dom::htmloptionelement::HTMLOptionElement;
|
||||
use dom::node::{Node, UnbindContext, window_from_node};
|
||||
use dom::nodelist::NodeList;
|
||||
|
@ -82,6 +82,23 @@ impl HTMLSelectElement {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn push_form_data(&self, data_set: &mut Vec<FormDatum>) {
|
||||
let node = self.upcast::<Node>();
|
||||
if self.Name().is_empty() {
|
||||
return;
|
||||
}
|
||||
for opt in node.traverse_preorder().filter_map(Root::downcast::<HTMLOptionElement>) {
|
||||
let element = opt.upcast::<Element>();
|
||||
if opt.Selected() && element.get_enabled_state() {
|
||||
data_set.push(FormDatum {
|
||||
ty: self.Type(),
|
||||
name: self.Name(),
|
||||
value: opt.Value()
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#concept-select-pick
|
||||
pub fn pick_option(&self, picked: &HTMLOptionElement) {
|
||||
if !self.Multiple() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue