Skip to content

Commit

Permalink
indexed getter of form elements
Browse files Browse the repository at this point in the history
  • Loading branch information
mrmiywj committed Jun 15, 2016
1 parent 3fa0dca commit 4bb8843
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 6 deletions.
7 changes: 7 additions & 0 deletions components/script/dom/htmlformelement.rs
Expand Up @@ -6,6 +6,7 @@ use dom::bindings::codegen::Bindings::BlobBinding::BlobMethods;
use dom::bindings::codegen::Bindings::DocumentBinding::DocumentMethods;
use dom::bindings::codegen::Bindings::EventBinding::EventMethods;
use dom::bindings::codegen::Bindings::HTMLButtonElementBinding::HTMLButtonElementMethods;
use dom::bindings::codegen::Bindings::HTMLFormControlsCollectionBinding::HTMLFormControlsCollectionMethods;
use dom::bindings::codegen::Bindings::HTMLFormElementBinding;
use dom::bindings::codegen::Bindings::HTMLFormElementBinding::HTMLFormElementMethods;
use dom::bindings::codegen::Bindings::HTMLInputElementBinding::HTMLInputElementMethods;
Expand Down Expand Up @@ -229,6 +230,12 @@ impl HTMLFormElementMethods for HTMLFormElement {
fn Length(&self) -> u32 {
self.Elements().Length() as u32
}

// https://html.spec.whatwg.org/multipage/#dom-form-item
fn IndexedGetter(&self, index: u32, found: &mut bool) -> Option<Root<Element>> {
let elements = self.Elements();
elements.IndexedGetter(index, found)
}
}

#[derive(Copy, Clone, HeapSizeOf, PartialEq)]
Expand Down
2 changes: 1 addition & 1 deletion components/script/dom/webidls/HTMLFormElement.webidl
Expand Up @@ -17,7 +17,7 @@ interface HTMLFormElement : HTMLElement {

[SameObject] readonly attribute HTMLFormControlsCollection elements;
readonly attribute unsigned long length;
//getter Element (unsigned long index);
getter Element? (unsigned long index);
//getter (RadioNodeList or Element) (DOMString name);

void submit();
Expand Down
6 changes: 6 additions & 0 deletions tests/wpt/metadata/MANIFEST.json
Expand Up @@ -36058,6 +36058,12 @@
"url": "/html/semantics/embedded-content/the-iframe-element/same_origin_parentage.html"
}
],
"html/semantics/forms/the-form-element/form-indexed-element.html": [
{
"path": "html/semantics/forms/the-form-element/form-indexed-element.html",
"url": "/html/semantics/forms/the-form-element/form-indexed-element.html"
}
],
"url/url-domainToUnicode.html": [
{
"path": "url/url-domainToUnicode.html",
Expand Down

This file was deleted.

@@ -0,0 +1,22 @@
<!doctype html>
<meta charset="utf-8">
<title>form.elements: indexed</title>
<link rel="author" title="Ivan.Yang" href="mailto:jsyangwenjie@gmail.com">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<div id="test">
<form id=form>
<input type="radio" name="radio1" id="r1" value=1>
<input type="radio" name="radio2" id="r2" value=2>
</form>
</div>
<script>
test(function() {
var form = document.getElementById("form");
assert_equals(form[0], document.getElementById("r1"));
assert_equals(form[1], document.getElementById("r2"));
assert_equals(form[2], undefined);
assert_equals(form[-1], undefined);
}, "form.elements should be accessed correctly by index")
</script>

0 comments on commit 4bb8843

Please sign in to comment.