Repository: wicket Updated Branches: refs/heads/wicket-7.x 18a1c2f9e -> 08be805e1
WICKET-6462 When an Ajax Button is submitted, AjaxFormSubmitBehavior # onSubmit is called twice Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/bedf3fdc Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/bedf3fdc Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/bedf3fdc Branch: refs/heads/wicket-7.x Commit: bedf3fdcd4e7ac12c6dac9694e4029e50a289f77 Parents: 18a1c2f Author: Andrea Del Bene <adelb...@apache.org> Authored: Mon Sep 4 21:48:41 2017 +0200 Committer: Andrea Del Bene <andrea.delb...@innoteam.it> Committed: Tue Sep 5 17:53:53 2017 +0200 ---------------------------------------------------------------------- .../apache/wicket/ajax/form/AjaxFormSubmitBehavior.java | 7 ------- .../java/org/apache/wicket/markup/html/form/Form.java | 11 +++++++---- 2 files changed, 7 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/bedf3fdc/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormSubmitBehavior.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormSubmitBehavior.java b/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormSubmitBehavior.java index 2d2f07f..b281be4 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormSubmitBehavior.java +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormSubmitBehavior.java @@ -172,13 +172,6 @@ public abstract class AjaxFormSubmitBehavior extends AjaxEventBehavior Form<?> form = getForm(); form.getRootForm().onFormSubmitted(submitter); - - //the target form might have wantSubmitOnParentFormSubmit returning "false" - //so it must be explicitly submitted. - if (!form.isSubmitted()) - { - form.onFormSubmitted(submitter); - } } /** http://git-wip-us.apache.org/repos/asf/wicket/blob/bedf3fdc/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java index 75e06cb..da0e1e4 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java @@ -734,7 +734,7 @@ public class Form<T> extends WebMarkupContainer */ public final void onFormSubmitted(IFormSubmitter submitter) { - markFormsSubmitted(); + markFormsSubmitted(submitter); if (handleMultiPart()) { @@ -1014,18 +1014,21 @@ public class Form<T> extends WebMarkupContainer /** * Sets FLAG_SUBMITTED to true on this form and every enabled nested form. + * @param submitter */ - private void markFormsSubmitted() + private void markFormsSubmitted(IFormSubmitter submitter) { setFlag(FLAG_SUBMITTED, true); - + Form<?> formToProcess = findFormToProcess(submitter); + visitChildren(Form.class, new IVisitor<Component, Void>() { @Override public void component(final Component component, final IVisit<Void> visit) { Form<?> form = (Form<?>)component; - if (form.wantSubmitOnParentFormSubmit() && form.isEnabledInHierarchy() && form.isVisibleInHierarchy()) + if ((form.wantSubmitOnParentFormSubmit() || form == formToProcess) + && form.isEnabledInHierarchy() && form.isVisibleInHierarchy()) { form.setFlag(FLAG_SUBMITTED, true); return;