I have a form with a bunch of text fields and a submit button. I would like to keep the form submit button disabled until the form passes validation. The form is currently validated using the ajaxformvalidation behavior.
Is there an out of the box technique to do this? I copied the AjaxFormValidationBehavior class and modified the onSubmit() to add the button as enabled when the form has no errors in it. Although this works, I would like to know if there is an elegant way to achieve this. I added a DisabledBehavior class that just tags the component that needs to be enabled or disabled conditionally. And then onSubmit() I do the following: getForm().visitChildren(FormComponent.class, new IVisitor() { public Object component(Component component) { for (Object behavior : component.getBehaviors()) { if (behavior instanceof DisabledBehavior) target.addComponent(component); } return IVisitor.CONTINUE_TRAVERSAL_BUT_DONT_GO_DEEPER; } }); Would appreciate if anyone can suggest a better way to do this. Thanks.