> Is there a simple way to have the form to be > submitted with a specific > listener on my onChange event of my > @PropertySelection, and also to have > my submit button calling the "regular" listener (the > one specified in > the @Form component?
I do not know whether there is a simple way of doing the above. But have you trying using the paramaters selected and tag in the submit component ? http://jakarta.apache.org/tapestry/tapestry/ComponentReference/Submit.html With them, you can distinquish in your form listener onChangeEventPropertySelectionListener, whether the form submission is triggered by a change in PropertSelection or the submit button has been clicked. Once you know how the form submission is triggered, you can act accordingly. Shing --- Martin Carel <[EMAIL PROTECTED]> wrote: > Hi folks! > > I have a problem involving validation and submit > listeners. > > > Here is the (simplified) HTML template: > > <form jwcid="@Form" > listener="ognl:listeners.onChangeEventPropertySelectionListener" > > delegate="bean:delegate"> > <select jwcid="[EMAIL PROTECTED]" > id="countrySelect" > value="ognl:country" model="ognl:countriesModel" > onChange="this.form.submit()"/> > > <span jwcid="@FieldLabel" > field="component:pickupDatePicker"/></span> > <span jwcid="pickupDatePicker"/> > <input type="submit" > listener="ognl:listeners.searchSubmitListener" > jwcid="@Submit" value="Search"/> > </form> > > > Here is the spec: > > <component id="pickupDatePicker" type="DatePicker"> > <binding name="validators" > value="ognl:{beans.required,beans.maxDate}"/> > <binding name="value" value="ognl:pickupDate"/> > <binding name="displayName" value="literal:Pick up > date"/> > </component> > > <bean name="delegate" > class="com.utils.MyValidationDelegate" > property="delegate"/> > > <bean name="required" > class="org.apache.tapestry.form.validator.Required"/> > <bean name="maxDate" > class="org.apache.tapestry.form.validator.MaxDate"> > <set name="maxDate" value="new java.util.Date()"> > </set> > </bean> > > > And MyValidationDelegate is exactly (apart from the > package name) the > class on > http://jakarta.apache.org/tapestry/UsersGuide/validation.html#validation.delegate > > This code worked great until I wanted to support > server-side validation. > As I understand, server-side validation is only > possible with the > listener specified in the @Form component (and *not* > with the one > specified in the @Submit component). But I was using > the listener > belonging to the @Form for my onChange event of my > @PropertySelection > component, and using the listener belonging to the > @Submit for the > actual form submission. > > Is there a simple way to have the form to be > submitted with a specific > listener on my onChange event of my > @PropertySelection, and also to have > my submit button calling the "regular" listener (the > one specified in > the @Form component? > > I tried to add a (hidden) @Submit component, which > would be clicked via > JS on the onChange event of my @PropertySelection, > but not only the > listener for that @Submit component is called, but > *also* the listener > defined in the @Form component :( > > Note: returning the same page in the first listener > (associated with the > @Submit component) didn't work out, the other > listener is also called! > > I'm stuck. > > /Martin > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: > [EMAIL PROTECTED] > For additional commands, e-mail: > [EMAIL PROTECTED] > > Home page : http://uk.geocities.com/matmsh/index.html ___________________________________________________________ Yahoo! Messenger - NEW crystal clear PC to PC calling worldwide with voicemail http://uk.messenger.yahoo.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
