You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by heapifyman <he...@gmail.com> on 2012/08/06 18:33:36 UTC

[1.5] AjaxFormComponentUpdatingBehavior and Cancel AjaxButton to reset form

Hello,

I've been struggling for a while now with a problem that a Cancel
AjaxButton (with setDefaultFormProcessing(false)) calling form.clearInput()
would not reset my form to original values.
The problem seems to be that I have AjaxFormComponentUpdatingBehavior
(onchange event) for validation added to a few Textfields of the form.
Am I right, that the behaviour updates the model and thus the Cancel button
cannot restore the original value?

And if that really is the problem, is there a best practice how to combine
the two functionalities?

Thanks in advance.

Re: [1.5] AjaxFormComponentUpdatingBehavior and Cancel AjaxButton to reset form

Posted by Bertrand Guay-Paquet <be...@step.polymtl.ca>.
>> The cancel link should just set an empty model object to the form.
> What if I'm editing an existing entity that's coming from a database (not
> creating a new one) and I want to display the original values after
> clicking Cancel? I assume I have to reload the entity and set it as the
> model object again?
Yes. You also have to add the form to the ajax target for it to be 
re-rendered with the original values.


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


Re: [1.5] AjaxFormComponentUpdatingBehavior and Cancel AjaxButton to reset form

Posted by heapifyman <he...@gmail.com>.
2012/8/7 Martin Grigorov <mg...@apache.org>

> On Tue, Aug 7, 2012 at 1:25 PM, Phillips, David <Da...@usaa.com>
> wrote:
> > The primary nature of the AjaxFormComponentUpdatingBehavior is to
> validate the input and update the model. If you are looking to do the
> validation piece without updating the model, you probably want to use an
> AjaxEventBehavior instead. In onEvent you can then call inputChanged and
> validate directly on the component without calling updateModel.
>
> This wont work because AjaxEventBehavior doesn't send the data, unless
> you do this manually.
>

How would I do that?


>
>
> The cancel link should just set an empty model object to the form.
>

What if I'm editing an existing entity that's coming from a database (not
creating a new one) and I want to display the original values after
clicking Cancel? I assume I have to reload the entity and set it as the
model object again?


>
> >
> > Thanks,
> > -David Phillips
> >
> > -----Original Message-----
> > From: heapifyman [mailto:heapifyman@gmail.com]
> > Sent: Tuesday, August 07, 2012 5:07 AM
> > To: users@wicket.apache.org
> > Subject: Re: [1.5] AjaxFormComponentUpdatingBehavior and Cancel
> AjaxButton to reset form
> >
> > If I use an AjaxLink instead of an AjaxButton I still get the same
> behaviour. The values in the form are not reset when clicking the Cancel
> link/button.
> >
> > My form has a CompoundPropertyModel and just three TextFields.
> > Each TextField has an AjaxFormComponentUpdatingBehavior for validation
> on event "onchange". The Cancel AjaxLink should reset (and disable) the
> form but stay on the same page.
> >
> > Now what I get is this: if the user changes a value and it is valid, the
> underlying model get's updated. Clicking Cancel afterwards does not reset
> the changed value back to the original value.
> >
> > If I remove the AjaxFormComponentUpdatingBehavior Cancel AjaxLink works
> as expected.
> >
> > I am looking for a way to have the Cancel link and still keep the
> AjaxFormComponentUpdatingBehavior.
> >
> >
> >
> > 2012/8/6 Bertrand Guay-Paquet <be...@step.polymtl.ca>
> >
> >> Hi,
> >>
> >> form.clearInput() only clears the raw input (what is received in the
> >> current request) of the form components. That is, it doesn't modify
> >> the underlying models. With setDefaultFormProcessing(**false), this
> >> means that your FormComponent models are not updated at all.
> >>
> >> The AjaxFormComponentUpdatingBehav**ior should only be triggered when
> >> input changes on the text fields. It plays no part otherwise when
> >> clicking a button.
> >>
> >> As a sidenote, why do you use a Button? This component causes the form
> >> to be submitted but apparently you don't need the values for this
> >> action. A link would save a bit of processing and transfer.
> >>
> >> Bertrand
> >>
> >>
> >> On 06/08/2012 12:33 PM, heapifyman wrote:
> >>
> >>> Hello,
> >>>
> >>> I've been struggling for a while now with a problem that a Cancel
> >>> AjaxButton (with setDefaultFormProcessing(**false)) calling
> >>> form.clearInput()
> >>> would not reset my form to original values.
> >>> The problem seems to be that I have
> >>> AjaxFormComponentUpdatingBehav**ior
> >>> (onchange event) for validation added to a few Textfields of the form.
> >>> Am I right, that the behaviour updates the model and thus the Cancel
> >>> button cannot restore the original value?
> >>>
> >>> And if that really is the problem, is there a best practice how to
> >>> combine the two functionalities?
> >>>
> >>> Thanks in advance.
> >>>
> >>>
> >>
> >> ------------------------------**------------------------------**------
> >> --- To unsubscribe, e-mail:
> >> users-unsubscribe@wicket.**apache.org<users-unsubscribe@wicket.apache.
> >> org> For additional commands, e-mail: users-help@wicket.apache.org
> >>
> >>
>
>
>
> --
> Martin Grigorov
> jWeekend
> Training, Consulting, Development
> http://jWeekend.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

Re: [1.5] AjaxFormComponentUpdatingBehavior and Cancel AjaxButton to reset form

Posted by Martin Grigorov <mg...@apache.org>.
On Tue, Aug 7, 2012 at 1:25 PM, Phillips, David <Da...@usaa.com> wrote:
> The primary nature of the AjaxFormComponentUpdatingBehavior is to validate the input and update the model. If you are looking to do the validation piece without updating the model, you probably want to use an AjaxEventBehavior instead. In onEvent you can then call inputChanged and validate directly on the component without calling updateModel.

This wont work because AjaxEventBehavior doesn't send the data, unless
you do this manually.


The cancel link should just set an empty model object to the form.

>
> Thanks,
> -David Phillips
>
> -----Original Message-----
> From: heapifyman [mailto:heapifyman@gmail.com]
> Sent: Tuesday, August 07, 2012 5:07 AM
> To: users@wicket.apache.org
> Subject: Re: [1.5] AjaxFormComponentUpdatingBehavior and Cancel AjaxButton to reset form
>
> If I use an AjaxLink instead of an AjaxButton I still get the same behaviour. The values in the form are not reset when clicking the Cancel link/button.
>
> My form has a CompoundPropertyModel and just three TextFields.
> Each TextField has an AjaxFormComponentUpdatingBehavior for validation on event "onchange". The Cancel AjaxLink should reset (and disable) the form but stay on the same page.
>
> Now what I get is this: if the user changes a value and it is valid, the underlying model get's updated. Clicking Cancel afterwards does not reset the changed value back to the original value.
>
> If I remove the AjaxFormComponentUpdatingBehavior Cancel AjaxLink works as expected.
>
> I am looking for a way to have the Cancel link and still keep the AjaxFormComponentUpdatingBehavior.
>
>
>
> 2012/8/6 Bertrand Guay-Paquet <be...@step.polymtl.ca>
>
>> Hi,
>>
>> form.clearInput() only clears the raw input (what is received in the
>> current request) of the form components. That is, it doesn't modify
>> the underlying models. With setDefaultFormProcessing(**false), this
>> means that your FormComponent models are not updated at all.
>>
>> The AjaxFormComponentUpdatingBehav**ior should only be triggered when
>> input changes on the text fields. It plays no part otherwise when
>> clicking a button.
>>
>> As a sidenote, why do you use a Button? This component causes the form
>> to be submitted but apparently you don't need the values for this
>> action. A link would save a bit of processing and transfer.
>>
>> Bertrand
>>
>>
>> On 06/08/2012 12:33 PM, heapifyman wrote:
>>
>>> Hello,
>>>
>>> I've been struggling for a while now with a problem that a Cancel
>>> AjaxButton (with setDefaultFormProcessing(**false)) calling
>>> form.clearInput()
>>> would not reset my form to original values.
>>> The problem seems to be that I have
>>> AjaxFormComponentUpdatingBehav**ior
>>> (onchange event) for validation added to a few Textfields of the form.
>>> Am I right, that the behaviour updates the model and thus the Cancel
>>> button cannot restore the original value?
>>>
>>> And if that really is the problem, is there a best practice how to
>>> combine the two functionalities?
>>>
>>> Thanks in advance.
>>>
>>>
>>
>> ------------------------------**------------------------------**------
>> --- To unsubscribe, e-mail:
>> users-unsubscribe@wicket.**apache.org<users-unsubscribe@wicket.apache.
>> org> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>



-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com

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


RE: [1.5] AjaxFormComponentUpdatingBehavior and Cancel AjaxButton to reset form

Posted by "Phillips, David" <Da...@usaa.com>.
The primary nature of the AjaxFormComponentUpdatingBehavior is to validate the input and update the model. If you are looking to do the validation piece without updating the model, you probably want to use an AjaxEventBehavior instead. In onEvent you can then call inputChanged and validate directly on the component without calling updateModel.

Thanks,
-David Phillips

-----Original Message-----
From: heapifyman [mailto:heapifyman@gmail.com] 
Sent: Tuesday, August 07, 2012 5:07 AM
To: users@wicket.apache.org
Subject: Re: [1.5] AjaxFormComponentUpdatingBehavior and Cancel AjaxButton to reset form

If I use an AjaxLink instead of an AjaxButton I still get the same behaviour. The values in the form are not reset when clicking the Cancel link/button.

My form has a CompoundPropertyModel and just three TextFields.
Each TextField has an AjaxFormComponentUpdatingBehavior for validation on event "onchange". The Cancel AjaxLink should reset (and disable) the form but stay on the same page.

Now what I get is this: if the user changes a value and it is valid, the underlying model get's updated. Clicking Cancel afterwards does not reset the changed value back to the original value.

If I remove the AjaxFormComponentUpdatingBehavior Cancel AjaxLink works as expected.

I am looking for a way to have the Cancel link and still keep the AjaxFormComponentUpdatingBehavior.



2012/8/6 Bertrand Guay-Paquet <be...@step.polymtl.ca>

> Hi,
>
> form.clearInput() only clears the raw input (what is received in the 
> current request) of the form components. That is, it doesn't modify 
> the underlying models. With setDefaultFormProcessing(**false), this 
> means that your FormComponent models are not updated at all.
>
> The AjaxFormComponentUpdatingBehav**ior should only be triggered when 
> input changes on the text fields. It plays no part otherwise when 
> clicking a button.
>
> As a sidenote, why do you use a Button? This component causes the form 
> to be submitted but apparently you don't need the values for this 
> action. A link would save a bit of processing and transfer.
>
> Bertrand
>
>
> On 06/08/2012 12:33 PM, heapifyman wrote:
>
>> Hello,
>>
>> I've been struggling for a while now with a problem that a Cancel 
>> AjaxButton (with setDefaultFormProcessing(**false)) calling
>> form.clearInput()
>> would not reset my form to original values.
>> The problem seems to be that I have 
>> AjaxFormComponentUpdatingBehav**ior
>> (onchange event) for validation added to a few Textfields of the form.
>> Am I right, that the behaviour updates the model and thus the Cancel 
>> button cannot restore the original value?
>>
>> And if that really is the problem, is there a best practice how to 
>> combine the two functionalities?
>>
>> Thanks in advance.
>>
>>
>
> ------------------------------**------------------------------**------
> --- To unsubscribe, e-mail: 
> users-unsubscribe@wicket.**apache.org<users-unsubscribe@wicket.apache.
> org> For additional commands, e-mail: users-help@wicket.apache.org
>
>

Re: [1.5] AjaxFormComponentUpdatingBehavior and Cancel AjaxButton to reset form

Posted by heapifyman <he...@gmail.com>.
If I use an AjaxLink instead of an AjaxButton I still get the same
behaviour. The values in the form are not reset when clicking the Cancel
link/button.

My form has a CompoundPropertyModel and just three TextFields.
Each TextField has an AjaxFormComponentUpdatingBehavior for validation on
event "onchange". The Cancel AjaxLink should reset (and disable) the form
but stay on the same page.

Now what I get is this: if the user changes a value and it is valid, the
underlying model get's updated. Clicking Cancel afterwards does not reset
the changed value back to the original value.

If I remove the AjaxFormComponentUpdatingBehavior Cancel AjaxLink works as
expected.

I am looking for a way to have the Cancel link and still keep
the AjaxFormComponentUpdatingBehavior.



2012/8/6 Bertrand Guay-Paquet <be...@step.polymtl.ca>

> Hi,
>
> form.clearInput() only clears the raw input (what is received in the
> current request) of the form components. That is, it doesn't modify the
> underlying models. With setDefaultFormProcessing(**false), this means
> that your FormComponent models are not updated at all.
>
> The AjaxFormComponentUpdatingBehav**ior should only be triggered when
> input changes on the text fields. It plays no part otherwise when clicking
> a button.
>
> As a sidenote, why do you use a Button? This component causes the form to
> be submitted but apparently you don't need the values for this action. A
> link would save a bit of processing and transfer.
>
> Bertrand
>
>
> On 06/08/2012 12:33 PM, heapifyman wrote:
>
>> Hello,
>>
>> I've been struggling for a while now with a problem that a Cancel
>> AjaxButton (with setDefaultFormProcessing(**false)) calling
>> form.clearInput()
>> would not reset my form to original values.
>> The problem seems to be that I have AjaxFormComponentUpdatingBehav**ior
>> (onchange event) for validation added to a few Textfields of the form.
>> Am I right, that the behaviour updates the model and thus the Cancel
>> button
>> cannot restore the original value?
>>
>> And if that really is the problem, is there a best practice how to combine
>> the two functionalities?
>>
>> Thanks in advance.
>>
>>
>
> ------------------------------**------------------------------**---------
> To unsubscribe, e-mail: users-unsubscribe@wicket.**apache.org<us...@wicket.apache.org>
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

Re: [1.5] AjaxFormComponentUpdatingBehavior and Cancel AjaxButton to reset form

Posted by Bertrand Guay-Paquet <be...@step.polymtl.ca>.
Hi,

form.clearInput() only clears the raw input (what is received in the 
current request) of the form components. That is, it doesn't modify the 
underlying models. With setDefaultFormProcessing(false), this means that 
your FormComponent models are not updated at all.

The AjaxFormComponentUpdatingBehavior should only be triggered when 
input changes on the text fields. It plays no part otherwise when 
clicking a button.

As a sidenote, why do you use a Button? This component causes the form 
to be submitted but apparently you don't need the values for this 
action. A link would save a bit of processing and transfer.

Bertrand

On 06/08/2012 12:33 PM, heapifyman wrote:
> Hello,
>
> I've been struggling for a while now with a problem that a Cancel
> AjaxButton (with setDefaultFormProcessing(false)) calling form.clearInput()
> would not reset my form to original values.
> The problem seems to be that I have AjaxFormComponentUpdatingBehavior
> (onchange event) for validation added to a few Textfields of the form.
> Am I right, that the behaviour updates the model and thus the Cancel button
> cannot restore the original value?
>
> And if that really is the problem, is there a best practice how to combine
> the two functionalities?
>
> Thanks in advance.
>


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