From 38e4d86b148c198771f3917c0e0d6f2a639a0ca1 Mon Sep 17 00:00:00 2001 From: Matthew Rasmus Date: Mon, 8 Dec 2014 09:19:47 -0800 Subject: [PATCH] Implements DefaultChecked and resets of checkboxes --- components/script/dom/htmlinputelement.rs | 16 ++++++++++------ .../script/dom/webidls/HTMLInputElement.webidl | 2 +- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/components/script/dom/htmlinputelement.rs b/components/script/dom/htmlinputelement.rs index 7057ec913234..2d9eeef5f8fb 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 532ac73e25ae..471804327360 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;