Thanks for your replies. Jens I will try out both of those suggestions!
Boris - I'm actually using a fairly old version then - 3.2.0. Do you have a link to the JIRA issue or release notes or anything so that I can review your bug report? Thanks, Ben. > From: horvat.z.bo...@gmail.com > Date: Tue, 28 May 2013 19:25:48 +0200 > Subject: Re: jQuery/bind mixin does not submit field value onChange > To: users@tapestry.apache.org > > Hi, > > I recently reported a bug whcih I think could be what you are talking > about. This was fixed in the new version 3.3.7-SNAPSHOT, are you using this? > > Cheers, > Boris > > > On Tue, May 28, 2013 at 4:31 PM, Jens Breitenstein > <mailingl...@j-b-s.de>wrote: > > > Hi Ben! > > > > Any particular reason why you need bind for capturing the change event of > > a select? > > This works for me (honestly not tried in a AjaxFormLoop, so don't kill me): > > > > <t:select class="input-small" t:id="**schoolFinderSearchOption" > > t:validate="required" > > blankOption="Always" > > value="**schoolFinderSearchOptionValue" > > zone="schoolFinderZone"/> > > > > as schoolFinderSearchOptionValue is defined as an Enum Property > > > > @Property private ESchoolFinderSearchOption _** > > schoolFinderSearchOptionValue; > > > > therefore Tapestry calls > > > > Object onValueChanged(final ESchoolFinderSearchOption esfso) > > { > > .... > > } > > > > > > I guess due to the fact you have a zone and a jquery/bind at the same time > > you are getting two calls. In case you solely use bind you can send the > > current value as part of the request by adding a callback (this snipped is > > working for me in an AjayFormLoop with a checkbox, so please modify it > > accordingly for your "input field of type select"): > > > > bind.event="**deleteCheckboxChanged" > > bind.eventType="change" > > bind.callback="function(event,**ui,url) { url.addContext(event.target. > > **checked); }" > > > > and this calls > > > > Object onDeleteCheckboxChanged(final long formEventPk, final String > > state) // you can even use: ..., final boolean state) instead of > > string > > { > > ... > > } > > > > > > Jens > > > > > > > > > > Am 28.05.13 13:48, schrieb Ben Titmarsh: > > > > Hi All, > >> > >> I am using the jQuery bind mixin to respond to 'onChange' events from my > >> form fields, process the change then update the zone. This is my tml: > >> > >> <t:select t:id="superTypeOverride" t:clientId="superTypeOverride" > >> t:value="cubeCard.**superTypeCombinationOverride" > >> t:mixins="jquery/bind" > >> bind.context="cubeCard.id" > >> bind.event="**SuperTypeOverrideChanged" > >> bind.eventType="change" > >> bind.zone="gridZone" t:zone="gridZone" /> > >> > >> I have a bunch of these created in a loop, each with a different > >> cubeCard.id context value. > >> > >> What I'm seeing is that when the value of the field is changed, two > >> requests are produced: > >> > >> 1. /editcube:**supertypeoverridechanged/49 > >> 2. /editcube.supertypeoverride:**change > >> > >> The first one contains the important context value and the second one > >> contains the changed value of the form field in the Request body. I can > >> add a handler for both in my page class: > >> > >> 1. public Object onSuperTypeOverrideChanged(**Integer cubeCardId) > >> 2. public void onChangeFromSuperTypeOverride(**) > >> > >> But the problem is that I need the context AND the submitted value, > >> therefore what I'm having to do is basically wait for the second request to > >> be processed and the value set on the server side before I can process the > >> request containing the context: > >> > >> public Object onSuperTypeOverrideChanged(**Integer cubeCardId) { > >> Thread.sleep(200); > >> //processing > >> return gridZone.getBody(); > >> } > >> > >> Clearly this isn't ideal. So, am I doing something wrong here? Should I > >> be getting two requests or just one? Is there anyone else who has > >> experience with this mixin who can help me out? > >> > >> Thanks, > >> Ben. > >> > >> > >> > >> > > > > > > > > ------------------------------**------------------------------**--------- > > To unsubscribe, e-mail: > > users-unsubscribe@tapestry.**apache.org<users-unsubscr...@tapestry.apache.org> > > For additional commands, e-mail: users-h...@tapestry.apache.org > > > > > > > -- > Sincerely > *Boris Horvat*