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: [email protected]
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]

Reply via email to