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:
Nicolas 2015-10-07 19:18:39 -04:00
parent 2bb6ea1321
commit 1f234af2ac
3 changed files with 47 additions and 17 deletions

View file

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