mirror of
https://github.com/servo/servo.git
synced 2025-07-23 07:13:52 +01:00
Make HTMLFormElementHelpers::submit take an enumerated argument instead of a boolean
Fixes #3677
This commit is contained in:
parent
6ab8f4611f
commit
a31849df11
2 changed files with 10 additions and 5 deletions
|
@ -116,19 +116,24 @@ impl<'a> HTMLFormElementMethods for JSRef<'a, HTMLFormElement> {
|
||||||
|
|
||||||
// https://html.spec.whatwg.org/multipage/forms.html#the-form-element:concept-form-submit
|
// https://html.spec.whatwg.org/multipage/forms.html#the-form-element:concept-form-submit
|
||||||
fn Submit(self) {
|
fn Submit(self) {
|
||||||
self.submit(true, FormElement(self));
|
self.submit(FromFormSubmitMethod, FormElement(self));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub enum SubmittedFrom {
|
||||||
|
FromFormSubmitMethod,
|
||||||
|
NotFromFormSubmitMethod
|
||||||
|
}
|
||||||
|
|
||||||
pub trait HTMLFormElementHelpers {
|
pub trait HTMLFormElementHelpers {
|
||||||
// https://html.spec.whatwg.org/multipage/forms.html#concept-form-submit
|
// https://html.spec.whatwg.org/multipage/forms.html#concept-form-submit
|
||||||
fn submit(self, from_submit_method: bool, submitter: FormSubmitter);
|
fn submit(self, submit_method_flag: SubmittedFrom, submitter: FormSubmitter);
|
||||||
// https://html.spec.whatwg.org/multipage/forms.html#constructing-the-form-data-set
|
// https://html.spec.whatwg.org/multipage/forms.html#constructing-the-form-data-set
|
||||||
fn get_form_dataset(self, submitter: Option<FormSubmitter>) -> Vec<FormDatum>;
|
fn get_form_dataset(self, submitter: Option<FormSubmitter>) -> Vec<FormDatum>;
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> HTMLFormElementHelpers for JSRef<'a, HTMLFormElement> {
|
impl<'a> HTMLFormElementHelpers for JSRef<'a, HTMLFormElement> {
|
||||||
fn submit(self, _from_submit_method: bool, submitter: FormSubmitter) {
|
fn submit(self, _submit_method_flag: SubmittedFrom, submitter: FormSubmitter) {
|
||||||
// Step 1
|
// Step 1
|
||||||
let doc = document_from_node(self).root();
|
let doc = document_from_node(self).root();
|
||||||
let win = window_from_node(self).root();
|
let win = window_from_node(self).root();
|
||||||
|
|
|
@ -19,7 +19,7 @@ use dom::element::{AttributeHandlers, Element, HTMLInputElementTypeId};
|
||||||
use dom::event::Event;
|
use dom::event::Event;
|
||||||
use dom::eventtarget::{EventTarget, NodeTargetTypeId};
|
use dom::eventtarget::{EventTarget, NodeTargetTypeId};
|
||||||
use dom::htmlelement::HTMLElement;
|
use dom::htmlelement::HTMLElement;
|
||||||
use dom::htmlformelement::{InputElement, FormOwner, HTMLFormElement, HTMLFormElementHelpers};
|
use dom::htmlformelement::{InputElement, FormOwner, HTMLFormElement, HTMLFormElementHelpers, NotFromFormSubmitMethod};
|
||||||
use dom::node::{DisabledStateHelpers, Node, NodeHelpers, ElementNodeTypeId, document_from_node, window_from_node};
|
use dom::node::{DisabledStateHelpers, Node, NodeHelpers, ElementNodeTypeId, document_from_node, window_from_node};
|
||||||
use dom::virtualmethods::VirtualMethods;
|
use dom::virtualmethods::VirtualMethods;
|
||||||
|
|
||||||
|
@ -397,7 +397,7 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLInputElement> {
|
||||||
InputRadio => self.SetChecked(true),
|
InputRadio => self.SetChecked(true),
|
||||||
InputButton(Some(DEFAULT_SUBMIT_VALUE)) => {
|
InputButton(Some(DEFAULT_SUBMIT_VALUE)) => {
|
||||||
self.form_owner().map(|o| {
|
self.form_owner().map(|o| {
|
||||||
o.root().submit(false, InputElement(self.clone()))
|
o.root().submit(NotFromFormSubmitMethod, InputElement(self.clone()))
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => {}
|
_ => {}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue