aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/htmlselectelement.rs
diff options
context:
space:
mode:
authorbors-servo <metajack+bors@gmail.com>2014-10-11 07:45:39 -0600
committerbors-servo <metajack+bors@gmail.com>2014-10-11 07:45:39 -0600
commit9dfd5e7fcd2011a411b219e8c45aadc0ecb270bd (patch)
tree766433d45e69aa6d8abfdbd447d59bcda43461e5 /components/script/dom/htmlselectelement.rs
parente048f3f940e124d45b43a53a850177c45907822d (diff)
parentca2d5d328d18878e369dd010236754ae207dab7d (diff)
downloadservo-9dfd5e7fcd2011a411b219e8c45aadc0ecb270bd.tar.gz
servo-9dfd5e7fcd2011a411b219e8c45aadc0ecb270bd.zip
auto merge of #3642 : Manishearth/servo/form-submit, r=jdm
This is missing a lot of parts, so it doesn't really make any real-world form submission work yet. It provides a skeleton on which the missing bits can be filled in. What works: - `<input>` elements except for `type=file` - GET/POST methods - URLencoded `enctype`s (default) - Submission via `<form>.submit()` only Stuff that needs to be done for most simple real-world cases to work: - [Working text input](https://github.com/servo/servo/pull/3585) - Click handlers for `<submit>` - Possibly `<textarea>` support - Support for the other two enctypes (#3649) Todo: - Correctly implement [planned navigation](https://html.spec.whatwg.org/multipage/forms.html#planned-navigation) using `TrustedFormAddress` (#3648) - [Correctly implement form owners.](https://github.com/servo/servo/issues/3553) Requires html5ever and some discussion of the spec. - `<input type=file>` support - Image submit support - Browsing contexts/targets - Support for non-`<input>` controls - Validation (?) - Dirname (?)
Diffstat (limited to 'components/script/dom/htmlselectelement.rs')
-rw-r--r--components/script/dom/htmlselectelement.rs14
1 files changed, 12 insertions, 2 deletions
diff --git a/components/script/dom/htmlselectelement.rs b/components/script/dom/htmlselectelement.rs
index 53f8ce3efff..8c86318c38c 100644
--- a/components/script/dom/htmlselectelement.rs
+++ b/components/script/dom/htmlselectelement.rs
@@ -5,13 +5,13 @@
use dom::bindings::codegen::Bindings::HTMLSelectElementBinding;
use dom::bindings::codegen::Bindings::HTMLSelectElementBinding::HTMLSelectElementMethods;
use dom::bindings::codegen::InheritTypes::{HTMLElementCast, NodeCast};
-use dom::bindings::codegen::InheritTypes::{HTMLSelectElementDerived, HTMLFieldSetElementDerived};
+use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLSelectElementDerived, HTMLFieldSetElementDerived};
use dom::bindings::codegen::UnionTypes::HTMLElementOrLong::HTMLElementOrLong;
use dom::bindings::codegen::UnionTypes::HTMLOptionElementOrHTMLOptGroupElement::HTMLOptionElementOrHTMLOptGroupElement;
use dom::bindings::js::{JSRef, Temporary};
use dom::bindings::utils::{Reflectable, Reflector};
use dom::document::Document;
-use dom::element::{AttributeHandlers, HTMLSelectElementTypeId};
+use dom::element::{AttributeHandlers, Element, HTMLSelectElementTypeId};
use dom::eventtarget::{EventTarget, NodeTargetTypeId};
use dom::htmlelement::HTMLElement;
use dom::node::{DisabledStateHelpers, Node, NodeHelpers, ElementNodeTypeId, window_from_node};
@@ -62,6 +62,16 @@ impl<'a> HTMLSelectElementMethods for JSRef<'a, HTMLSelectElement> {
// http://www.whatwg.org/html/#dom-fe-disabled
make_bool_setter!(SetDisabled, "disabled")
+
+ // https://html.spec.whatwg.org/multipage/forms.html#dom-select-type
+ fn Type(self) -> DOMString {
+ let elem: JSRef<Element> = ElementCast::from_ref(self);
+ if elem.has_attribute("multiple") {
+ "select-multiple".to_string()
+ } else {
+ "select-one".to_string()
+ }
+ }
}
impl<'a> VirtualMethods for JSRef<'a, HTMLSelectElement> {