You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Mike Comb <mc...@softcoin.com> on 2007/10/23 04:35:06 UTC
AjaxFallbackButton resetting validation status of form?
I've got a form that is a simple collection of TextFields. I'd like
to validate that form through AJAX prior to submission and redraw the
TextFields which have a Behavior attached to them that changes the
font color if they are invalid. To do that I've added an
AjaxFallbackButton that looks like this:
AjaxFallbackButton button = new AjaxFallbackButton (id, form) {
@Override
protected void onSubmit(AjaxRequestTarget target, Form form) { }
@Override
protected void onError(final AjaxRequestTarget target, Form form) {
// Redraw the feedback panel
if(feedbackPanel!=null)
target.addComponent(feedbackPanel);
// Redraw all child textfields
target.addChildren(form,TextField.class);
}
};
This works perfectly the first time it is clicked. However, if the
user does not correct the error or if there is a second error no
validation occurs on the second submission. If I comment out the
"addChildren" call the form works as I would expect and all errors
are shown in the FeedbackPanel through multiple submissions. Doing
anything that visits the form components seems to cause them to show
as valid the next time the form is submitted (I've also tried using
Form.visitFormComponents() and MarkupContainer.iterator() with
similar results).
Do I need to do something to reset the state of the form after
visiting the child components or could this be a bug? Is there a
better way to do this that I'm missing? It happens in both 1.3b3 and
1.3b4.
Note that I can't use AjaxFormValidatingBehavior because I need all
the validation to happen in one pass when the form is submitted not
as the user types things in.
Thanks,
-Mike
--
Mike Comb
Director of Engineering
SoftCoin, Inc
mcomb@softcoin.com
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org