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*