Hi, I had an issue with triggering a form fragment with a radio button. I came up with the following solution, and thought I'd share and ask for comments - perhaps it is possible to come up with something that can be included in Tapestry.
The .tml looks as follows: <t:form t:id="create"> <t:radiogroup t:id="createAction" value="action" encoder="actionEncoder"> <t:radio t:id="copy" t:mixins="radiotriggerfragment" fragment="copyfragment" /> <t:label for="copy" /> <t:radio t:id="new" /> <t:label for="new" /> </t:radiogroup> <t:formfragment t:id="copyfragment" visible="true"> This is the copy form fragment </t:formfragment> </t:form> This required the following mixin (mostly a copy of TriggerFragment.java): /** * Deal with using a radio button to make a form fragment visible/invisible */ public class RadioTriggerFragment { /** The container for this mixin */ @InjectContainer private Field container_; /** * The [EMAIL PROTECTED] org.apache.tapestry.corelib.components.FormFragment} instance * to make dynamically visible or hidden. */ @Parameter(name = "fragment", required = true, defaultPrefix = "component") private ClientElement fragment_; /** Page render support to get unique client side ids and generate links */ @Environmental private PageRenderSupport renderSupport_; /** The heartbeat */ @Environmental private Heartbeat heartbeat_; /** * Render the javascript call to deal with the radio button check/uncheck */ void beginRender() { Runnable r = new Runnable() { @SuppressWarnings("synthetic-access") public void run() { renderSupport_.addScript( "aplLinkRadioButtonToFormFragment('%s', '%s');", container_.getClientId(), fragment_.getClientId()); } }; // Defer generating the script to ensure that the FormFragment has // rendered // and generated its client id. heartbeat_.defer(r); } } and the following bit of javascript: function aplLinkRadioButtonToFormFragment(radio, form) { radio = $(radio); // Get the name on this radio button var allRadios = radio.form[radio.name]; for (var i=0; i<allRadios.length; i++) allRadios[i].observe("click", function() { $(form).formFragment.setVisible(radio.checked); }); } There does not seem to be a different way but to listen for events on all radio buttons in a radio group. Cheers, Adriaan --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]