you are welcome to submit a jira issue with a unit test/quickstart
that demonstrates the problem.

-igor

On Fri, Jan 21, 2011 at 5:42 AM, Daniel Bartl <d.ba...@comsysto.com> wrote:
> Many thanks for your feedback!
>
> I am well aware of the fact that HTML spec actually does not allow nested
> forms and that wicket is already doing great job while transforming those
> nested forms into divs.
>
> I also expected that the bigger form gets submitted as well but only the
> nested one processed and the rest ignored, but that's not exactly what's
> happening in our case.
>
> The reason for this is that AjaxFormSubmitBehavior always delegates to the
> #onFormSubmitted() of the root form
>
> AjaxFormSubmitBehavior, line 135:
>
> getForm().getRootForm().onFormSubmitted();
>
> which then looks up if there is any enabled, visible
> IFormSubmittingComponent in the hierarchy that has been triggered. Only in
> case that one such IFormSubmittingComponent gets identified, it sets
> *formToProcess* to the form of the identified submittingComponent and then
> finally invokes
>
> Form, line 920: formToProcess.process(submittingComponent);
>
> The problem with our crazy liitle nested form ;) is that it does not have
> any IFormSubmittingComponent but rather a TextField with
> AjaxFormSubmitBehavior attached to its "onchange" event that should then
> submit the nested form accordingly. This leads to formToProcess being left
> assigned to the parentForm that then gets processed at the end:
>
> - from Form#onFormSubmitted():
>
>                    // this is the root form
>                    Form<?> formToProcess = this;
>
>                    // find out whether it was a nested form that was
> submitted
>                    if (submittingComponent != null)
>                    {
>                        formToProcess = submittingComponent.getForm();
>                    }
>
>                    // process the form for this request
>                    formToProcess.process(submittingComponent);
>
>
> We have in the meantime subclassed AjaxFormSubmitBehavior with our own
> implementation of AjaxFormSubmitBehavior#onEvent(AjaxRequestTarget target)
> method the only difference being the line 135 that was changed from
>
> getForm().getRootForm().onFormSubmitted();
>
> to
>
> getForm().onFormSubmitted();
>
> and did not experience any problems with it, at least so far ;)
>
> Daniel
>
>
>
> On Fri, Jan 21, 2011 at 12:25 AM, jcgarciam <jcgarc...@gmail.com> wrote:
>
>>
>> Adding to Igor's comment, remember that nested form is not allow in HTML
>> spec per se, so what wicket is doing a trick where the root form is submit
>> but only elements of nested form (which get transform in DIV tag) are
>> processed
>>
>> On Thu, Jan 20, 2011 at 4:47 PM, Igor Vaynberg-2 [via Apache Wicket] <
>> ml-node+3228304-1818027643-65...@n4.nabble.com<ml-node%2b3228304-1818027643-65...@n4.nabble.com>
>> <ml-node%2b3228304-1818027643-65...@n4.nabble.com<ml-node%252b3228304-1818027643-65...@n4.nabble.com>
>> >
>> > wrote:
>>
>> > the bigger form needs to be processed because what is submitted is the
>> > root form's formtag. however, validation, etc, will probably be
>> > delegated only to the inner form.
>> >
>> > -igor
>> >
>> > On Thu, Jan 20, 2011 at 4:14 AM, Daniel Bartl <[hidden email]<
>> http://user/SendEmail.jtp?type=node&node=3228304&i=0>>
>> > wrote:
>> >
>> > > Have a small question regarding using AjaxFormSubmitBehavoir with
>> nested
>> > > forms.
>> > >
>> > > Would like to use it to submit a smaller nested form within a bigger
>> > parent
>> > > form.
>> > >
>> > > Even though I passed a nested form as a "*form that will be submitted*"
>> > > while calling the following constructor of AjaxFormSubmitBehavoir :
>> > >    /**
>> > >     * Construct.
>> > >     *
>> > >     * @param form
>> > >     *           * form that will be submitted*
>> > >     * @param event
>> > >     *            javascript event this behavior is attached to, like
>> > > onclick
>> > >     */
>> > >    public AjaxFormSubmitBehavior(Form<?> form, String
>> > > event)                 <- passing nested form here
>> > >    {
>> > >        super(event);
>> > >        __form = form;
>> > >
>> > >        if (form != null)
>> > >        {
>> > >            form.setOutputMarkupId(true);
>> > >        }
>> > >    }
>> > >
>> > >
>> > > I noticed that the AjaxFormSubmitBehavior#onEvent(AjaxRequestTarget
>> > target)
>> > > executes the following line first:
>> > > "getForm().getRootForm().onFormSubmitted();"
>> > > Why does it still delegate to the root form?
>> > >
>> > > Shouldn't the line be "getForm().onFormSubmitted();" so that the nested
>> > form
>> > > and possibly its children get processed only.
>> > >
>> > >
>> > > Many thanks!
>> > > Daniel
>> > >
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: [hidden email]<
>> http://user/SendEmail.jtp?type=node&node=3228304&i=1>
>> > For additional commands, e-mail: [hidden email]<
>> http://user/SendEmail.jtp?type=node&node=3228304&i=2>
>> >
>> >
>> >
>> > ------------------------------
>> >  If you reply to this email, your message will be added to the discussion
>> > below:
>> >
>> >
>> http://apache-wicket.1842946.n4.nabble.com/Question-regarding-AjaxFormSubmitBehavior-tp3227451p3228304.html
>> >  To start a new topic under Apache Wicket, email
>> > ml-node+1842946-398011874-65...@n4.nabble.com<ml-node%2b1842946-398011874-65...@n4.nabble.com>
>> <ml-node%2b1842946-398011874-65...@n4.nabble.com<ml-node%252b1842946-398011874-65...@n4.nabble.com>
>> >
>> > To unsubscribe from Apache Wicket, click here<
>> http://apache-wicket.1842946.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=1842946&code=amNnYXJjaWFtQGdtYWlsLmNvbXwxODQyOTQ2fDEyNTYxMzc3ODY=
>> >.
>> >
>> >
>>
>>
>>
>> --
>> Sincerely,
>> JC (http://www.linkedin.com/in/jcgarciam)
>> --Anyone who has never made a mistake has never tried anything new.--
>>
>> --
>> View this message in context:
>> http://apache-wicket.1842946.n4.nabble.com/Question-regarding-AjaxFormSubmitBehavior-tp3227451p3228728.html
>> Sent from the Users forum mailing list archive at Nabble.com.
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>>
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to