I'm trying to do some ajax with tapestry 5.4 and no matter what I do, I
can't stop tapestry from generating it's own clientId.

TML:

<t:select t:id="category" t:clientId="category" ... />
<t:zone t:id="makeZone">
   <t:select t:id="make" t:clientId="make" t:mixins="mycustommixin" ... />
</t:zone>
<t:zone t:id="modelZone">
   <t:select t:id="model" t:clientId="model" t:mixins="mycustommixin" ... />
</t:zone>


I update the zone(s) using some custom javascript:
   define(["jquery", "t5/core/zone"], function($, zoneManager) {
      return function(spec) {
        var $element = $('#' + spec.id);
        $element.on(spec.event, function() {
            zoneManager.deferredZoneUpdate(spec.zone, spec.url);
        });
    }

The first time the select fields are rendered, they have clientIds of
"make" and "model" as expected. But after ajax rendering, they have id's
like "make1_af42a49d19a" etc.

Is this expected behaviour? Since I've specified a clientId parameter I was
hoping this would override the auto-generation.

Note: Under the hood, AbstractField is calling
allocatedClientId = javaScriptSupport.allocateClientId(clientId);

Reply via email to