You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Christian Reiter <c....@gmx.net> on 2009/10/16 09:58:48 UTC

AjaxFallbackButton doesn't update ajax components when validation fails?

Hi!

I've got a form in which I use some textfields and other components 
which have validators attached.
The form also has the two standard ok and cancel buttons.

One important feature of the form is that the user should be able to 
query the altitude of a geoposition.
Therefore the form has a latitude and longitude textfield and a query 
altitude button.

When there is text in latitude and in longitude and the user clicks the 
query altitude button a web service
is queried for the appropriate altitude. Then the form's model object is 
updated with the altitude.

Everything works as expected when no other component in the form fails 
validation. The altitude is sent
back to the client. But when any other component fails validation, the 
altitude text field also isn't updated.

How can I omit this behaviour and get the altitude field updated, 
regardless of the validation result of the
other components?

Here's my query-altitude-button code:

queryAltitudeButton = new AjaxFallbackButton("queryAltitudeButton", form) {

             @Override
             protected void onError(AjaxRequestTarget target, Form<?> 
form) {
                 queryAlti(target);
             }


             @Override
             protected void onSubmit(AjaxRequestTarget target, Form<?> 
form) {
                 queryAlti(target);
             }

             private void queryAlti(AjaxRequestTarget target) {
                 Double alti = 
AltitudeService.getAltitude(place.getLatitude(), place.getLongitude());

                 if( alti != null && alti >= -300.0 && alti <= 9000.0) {
                     place.setElevation(alti);
                 } else {
                     place.setElevation(null);
                 }

                 if( target != null ) {
                     target.addComponent(altitudeTextField);
                     target.addComponent(feedbackPanel);
                 }
             }
};
queryAltitudeButton.setOutputMarkupId(true);
form.add(queryAltitudeButton);


Thanks!

chris

-- 


Christian Reiter    |||    c.reiter@gmx.net


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


Re: AjaxFallbackButton doesn't update ajax components when validation fails?

Posted by t3_chris <c....@gmx.net>.
Thanks, Ernesto!

I'll try this ASAP!




reiern70 wrote:
> 
> Just one idea... add some AjaxBehaivior that updates altitude  field in
> event "onchange". So, that even if validation fails you already have
> your altitude updated...
> Best,
> 
> Ernesto
> 

-- 
View this message in context: http://www.nabble.com/AjaxFallbackButton-doesn%27t-update-ajax-components-when-validation-fails--tp25921313p25923585.html
Sent from the Wicket - User mailing list archive at Nabble.com.


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


Re: AjaxFallbackButton doesn't update ajax components when validation fails?

Posted by Ernesto Reinaldo Barreiro <re...@gmail.com>.
Just one idea... add some AjaxBehaivior that updates altitude  field in
event "onchange". So, that even if validation fails you already have
your altitude updated...
Best,

Ernesto

On Fri, Oct 16, 2009 at 9:58 AM, Christian Reiter <c....@gmx.net> wrote:

> Hi!
>
> I've got a form in which I use some textfields and other components which
> have validators attached.
> The form also has the two standard ok and cancel buttons.
>
> One important feature of the form is that the user should be able to query
> the altitude of a geoposition.
> Therefore the form has a latitude and longitude textfield and a query
> altitude button.
>
> When there is text in latitude and in longitude and the user clicks the
> query altitude button a web service
> is queried for the appropriate altitude. Then the form's model object is
> updated with the altitude.
>
> Everything works as expected when no other component in the form fails
> validation. The altitude is sent
> back to the client. But when any other component fails validation, the
> altitude text field also isn't updated.
>
> How can I omit this behaviour and get the altitude field updated,
> regardless of the validation result of the
> other components?
>
> Here's my query-altitude-button code:
>
> queryAltitudeButton = new AjaxFallbackButton("queryAltitudeButton", form) {
>
>            @Override
>            protected void onError(AjaxRequestTarget target, Form<?> form) {
>                queryAlti(target);
>            }
>
>
>            @Override
>            protected void onSubmit(AjaxRequestTarget target, Form<?> form)
> {
>                queryAlti(target);
>            }
>
>            private void queryAlti(AjaxRequestTarget target) {
>                Double alti =
> AltitudeService.getAltitude(place.getLatitude(), place.getLongitude());
>
>                if( alti != null && alti >= -300.0 && alti <= 9000.0) {
>                    place.setElevation(alti);
>                } else {
>                    place.setElevation(null);
>                }
>
>                if( target != null ) {
>                    target.addComponent(altitudeTextField);
>                    target.addComponent(feedbackPanel);
>                }
>            }
> };
> queryAltitudeButton.setOutputMarkupId(true);
> form.add(queryAltitudeButton);
>
>
> Thanks!
>
> chris
>
> --
>
>
> Christian Reiter    |||    c.reiter@gmx.net
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>