target.addComponent(feedback);
target.addComponent(form); // you might have to add some div that is
around the form, not sure if browsers support replacing form tag well

-igor

On Tue, Sep 23, 2008 at 1:39 PM, Chris Stein <[EMAIL PROTECTED]> wrote:
> Thanks, Igor. However, I tried it and it never showed up in the browser.
> Even more so, when I set a breakpoint to the onComponentTag-method, it never 
> gets called. Is that correct?
> I only get this behavior when I am using the IndicatingAjaxButton--everything 
> works fine with the regular buttons. Maybe I am missing something else here...
>
> Here's my code:
>
> /**
>  * The panel with the form.
>  */
> public class SignInPanel extends Panel
> {
>  public SignInPanel(final String id)
>  {
>    super(id);
>
>    feedback.setOutputMarkupId(true);
>    add(feedback);
>
>    add(new SignInForm("signInForm"));
>  }
>
>
> public final class SignInForm extends StatelessForm
> {
>
>  private final ValueMap properties = new ValueMap();
>
>  public SignInForm(final String id)
>  {
>      super(id);
>
>      FormComponent fc;
>
>      fc = new RequiredTextField("username", new PropertyModel(properties, 
> "username"));
>      fc.add(new InvalidIndicator());
>      fc.setOutputMarkupId(true);
>      add(fc);
>
>      fc = new PasswordTextField("password", new PropertyModel(properties, 
> "password"));
>      fc.add(new InvalidIndicator());
>      fc.setOutputMarkupId(true);
>      add(fc);
>
>      AjaxFormValidatingBehavior.addToAllFormComponents(this, "onsubmit");
>
>      this.add(new IndicatingAjaxButton("submit", this)
>      {
>        @Override
>        protected void onSubmit(AjaxRequestTarget target, Form form)
>        {
>          //perform sign in
>        }
>
>        @Override
>        protected void onError(AjaxRequestTarget target, Form form)
>        {
>          target.addComponent(feedback);
>        }
>      });
>
>  }
> }
>
>
> /**
>  * The validator. Thanks to Igor.
>  */
> public class InvalidIndicator extends AbstractBehavior
> {
>  @Override
>  public void onComponentTag(final Component component, final ComponentTag tag)
>  {
>    boolean valid = ((FormComponent)component).isValid();
>    if(!valid)
>    {
>      tag.getAttributes().put("class","invalid");
>    }
>  }
> }
>
>
>
>
>
> ----- Original Message ----
> From: Igor Vaynberg <[EMAIL PROTECTED]>
> To: users@wicket.apache.org
> Sent: Tuesday, September 23, 2008 5:50:08 PM
> Subject: Re: Adding HTML class="invalid" after validating with 
> IndicatingAjaxButton
>
> public class invalidindicator extends abstractbehavior {
>  protected void oncomponenttag(component c, tag t) {
>      boolean valid=((formcomponent)c).isvalid();
>      if (!valid) {
>         tag.put("class","invalid");
>     }
>  }
> }
>
> formcomponent.add(new invalidindicator());
>
> -igor
>
> On Tue, Sep 23, 2008 at 2:53 AM, cstein1206 <[EMAIL PROTECTED]> wrote:
>>
>> I basically want to achieve this:
>> http://www.jroller.com/karthikg/entry/wicket_and_ajax
>> but handle the validation only after the form has been submitted with an
>> AjaxIndicatingButton instead of with the "onblur" as in the example.
>>
>> I think I tried too many things over the last couple of days and got totally
>> confused now. Would anybody be so kind to help me out a bit? What do I need
>> to add to the FormComponents so that they will be updated with an
>> HTML-attribute "class='invalid'"? So far my form doesn't do that (I did
>> setOutputMarkupId(true)).
>>
>> Thanks a ton!
>> Chris
>> --
>> View this message in context: 
>> http://www.nabble.com/Adding-HTML-class%3D%22invalid%22-after-validating-with-IndicatingAjaxButton-tp19624501p19624501.html
>> Sent from the Wicket - User mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to