Implement dirname for form submit and directionality for element

This commit is contained in:
Dmitry Kolupaev 2020-01-28 10:34:10 +03:00
parent 6bc4a7df24
commit ef49f2e0eb
14 changed files with 178 additions and 19 deletions

View file

@ -745,6 +745,8 @@ impl HTMLFormElement {
.map(|field| (&*field.name, field.replace_value(charset))),
);
println!("New URL: {url}", url = &load_data.url);
self.plan_to_navigate(load_data, target);
}
@ -952,6 +954,20 @@ impl HTMLFormElement {
let input = child.downcast::<HTMLInputElement>().unwrap();
data_set.append(&mut input.form_datums(submitter, encoding));
// TODO: probably move to input.form_datums(...) function
// 4.10.18.2 https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#submitting-element-directionality:-the-dirname-attribute
let dirname: DOMString = input.DirName();
let dirname_str: &str = &*dirname;
if !dirname_str.is_empty() {
data_set.push(FormDatum {
ty: input.Type(),
name: DOMString::from_string(dirname_str.to_owned()),
value: FormDatumValue::String(DOMString::from(
input.directionality("auto"),
)),
});
}
},
HTMLElementTypeId::HTMLButtonElement => {
let button = child.downcast::<HTMLButtonElement>().unwrap();
@ -983,8 +999,6 @@ impl HTMLFormElement {
}
}
data_set
// TODO: Handle `dirnames` (needs directionality support)
// https://html.spec.whatwg.org/multipage/#the-directionality
}
/// <https://html.spec.whatwg.org/multipage/#constructing-the-form-data-set>