if you want to push a null value into a component you marked required then dont mark it as required. if you have inter-dependent validation use a formvalidator or override form's onsubmit.
-igor On Thu, Feb 17, 2011 at 8:51 AM, Daniel Stoch <[email protected]> wrote: > There is a situation when the AjaxFormComponentUpdatingBehavior > deafult functionality fails. When we want to attach this behavior (or > OnChangeAjaxBehavior) to reflect changes inside a Model of > FormComponent which is marked as REQUIRED event if user clears > component input. In such situation AjaxFormComponentUpdatingBehavior > calls validation, FormComponent is not valid so error message is > reported and Model is not updated (I want to update this Model beacuse > the other things on form may depend on it). > > My proposition is to extend this behavior to handle such use-cases > when user clears FormComponent input: > 1. Do not update a Model and report error message (current and the > default behavior). > 2. Update a Model and not report any error messages. > 3. Update a Model and report error message. > > It can be done by adding to boolean properties to this behavior (they > both be null by default) - feel free to invent a better names ;): > - disabledValidation > - alwaysUpdateModel > > The change in code (not tested yet :)): > > protected final void onEvent(final AjaxRequestTarget target) > { > final FormComponent<?> formComponent = getFormComponent(); > > if (getEvent().toLowerCase().equals("onblur") && > disableFocusOnBlur()) > { > target.focusComponent(null); > } > > try > { > formComponent.inputChanged(); > if (!isDisabledValidation) { > formComponent.validate(); > } > if (formComponent.hasErrorMessage()) > { > formComponent.invalid(); > if (isAlwaysUpdateModel()) { > if (getUpdateModel()) > { > formComponent.updateModel(); > } > } > onError(target, null); > } > else > { > formComponent.valid(); > if (getUpdateModel()) > { > formComponent.updateModel(); > } > > onUpdate(target); > } > } > catch (RuntimeException e) > { > onError(target, e); > > } > } > > > -- > Daniel > > --------------------------------------------------------------------- > 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]
