diff --git a/components/script/dom/htmlinputelement.rs b/components/script/dom/htmlinputelement.rs
index 7057ec91323..2d9eeef5f8f 100644
--- a/components/script/dom/htmlinputelement.rs
+++ b/components/script/dom/htmlinputelement.rs
@@ -183,6 +183,12 @@ impl<'a> HTMLInputElementMethods for JSRef<'a, HTMLInputElement> {
// http://www.whatwg.org/html/#dom-fe-disabled
make_bool_setter!(SetDisabled, "disabled")
+ // https://html.spec.whatwg.org/multipage/forms.html#dom-input-defaultchecked
+ make_bool_getter!(DefaultChecked, "checked")
+
+ // https://html.spec.whatwg.org/multipage/forms.html#dom-input-defaultchecked
+ make_bool_setter!(SetDefaultChecked, "checked")
+
// https://html.spec.whatwg.org/multipage/forms.html#dom-input-checked
fn Checked(self) -> bool {
self.checked.get()
@@ -573,13 +579,11 @@ impl<'a> FormControl<'a> for JSRef<'a, HTMLInputElement> {
}
fn reset(self) {
- let ty = self.Type();
-
- match ty.as_slice() {
- "radio" | "checkbox" => {
- // TODO Reset radios/checkboxes here
+ match self.input_type.get() {
+ InputRadio | InputCheckbox => {
+ self.SetChecked(self.DefaultChecked());
},
- "image" => (),
+ InputImage => (),
_ => ()
}
diff --git a/components/script/dom/webidls/HTMLInputElement.webidl b/components/script/dom/webidls/HTMLInputElement.webidl
index 532ac73e25a..47180432736 100644
--- a/components/script/dom/webidls/HTMLInputElement.webidl
+++ b/components/script/dom/webidls/HTMLInputElement.webidl
@@ -9,7 +9,7 @@ interface HTMLInputElement : HTMLElement {
// attribute DOMString alt;
// attribute DOMString autocomplete;
// attribute boolean autofocus;
- // attribute boolean defaultChecked;
+ attribute boolean defaultChecked;
attribute boolean checked;
// attribute DOMString dirName;
attribute boolean disabled;