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*

Reply via email to