Was this the right list to send this to? Should I send to the dev list or open a jira ticket?
On Wed, Apr 14, 2010 at 3:58 PM, Adam Derkey <adam.der...@gmail.com> wrote: > Using Tapestry 5.2.0-SNAPSHOT > > I'm updating multiple zones after a select on Change event. The JSON > response is including an extra input field after a select field in one of > the zones I'm updating. The extra input is then showing up in the rendered > page in the browser. Why would tapestry be adding in an extra input field? > Is there a way to do this without the extra input being returned? > > I created this example using the quickstart app and send the entire project > if needed. > > Thanks > Adam > > /* > * Form.java > */ > package com.test.pages; > > import com.test.model.GenericSelectModel; > import com.test.vo.SelectObj; > import java.util.ArrayList; > import java.util.List; > import org.apache.tapestry5.EventContext; > import org.apache.tapestry5.SelectModel; > import org.apache.tapestry5.ajax.MultiZoneUpdate; > import org.apache.tapestry5.annotations.Component; > import org.apache.tapestry5.annotations.Property; > import org.apache.tapestry5.corelib.components.Select; > import org.apache.tapestry5.corelib.components.Zone; > import org.apache.tapestry5.ioc.annotations.Inject; > import org.apache.tapestry5.ioc.services.PropertyAccess; > import org.apache.tapestry5.services.Request; > > /** > * > * @author aderkey > */ > public class Form { > > @Inject > private Request request; > > @Inject > private PropertyAccess propertyAccess; > > @Component(id="selectValue1", parameters = {"model=select1Model", > "encoder=select1Model"}) > private Select select1; > > @Property > private SelectModel select1Model; > > @Property > private SelectObj selectValue1; > > @Component(id="selectValue2", parameters = {"model=select2Model", > "encoder=select2Model"}) > private Select select2; > > @Property > private SelectModel select2Model; > > @Property > private SelectObj selectValue2; > > @Component(id="select1ValueZone") > private Zone select1ValueZone; > > @Component(id="select2ValueZone") > private Zone select2ValueZone; > > void onActivate(EventContext ctx) { > List<SelectObj> select1List = new ArrayList(); > select1List.add(new SelectObj(0, "0 pre ajax")); > select1List.add(new SelectObj(1, "1 pre ajax")); > select1List.add(new SelectObj(2, "2 pre ajax")); > select1List.add(new SelectObj(3, "3 pre ajax")); > select1List.add(new SelectObj(4, "4 pre ajax")); > select1Model = new GenericSelectModel(select1List, SelectObj.class, > "text", "id", propertyAccess); > > List<SelectObj> select2List = new ArrayList(); > select2List.add(new SelectObj(0, "0 pre ajax")); > select2List.add(new SelectObj(1, "1 pre ajax")); > select2List.add(new SelectObj(2, "2 pre ajax")); > select2List.add(new SelectObj(3, "3 pre ajax")); > select2Model = new GenericSelectModel(select2List, SelectObj.class, > "text", "id", propertyAccess); > } > > public Object onValueChangedFromSelectValue1(SelectObj selectObj) { > System.out.println("onValueChangedSelectValue1"); > List<SelectObj> select2List = new ArrayList(); > select2List.add(new SelectObj(4, "4 post ajax")); > select2List.add(new SelectObj(5, "5 post ajax")); > select2List.add(new SelectObj(6, "6 post ajax")); > select2List.add(new SelectObj(7, "7 post ajax")); > select2Model = new GenericSelectModel(select2List, SelectObj.class, > "text", "id", propertyAccess); > > if(request.isXHR()) { > return new MultiZoneUpdate("select1ValueZone", > select1ValueZone.getBody()).add("select2ValueZone", > select2ValueZone.getBody()); > } else { > return this; > } > } > > } > > Form.tml > > <body t:type="Layout" t:title="form" t:bodyId="formPage" xmlns:t=" > http://tapestry.apache.org/schema/tapestry_5_1_0.xsd" > xmlns:p="tapestry:parameter"> > <form t:type="Form" t:id="form" t:clientValidation="false" action="#"> > <select t:type="Select" t:id="selectValue1" t:validate="required" > t:zone="select1ValueZone"/> > <t:zone t:id="select1ValueZone" visible="false">Show</t:zone> > <t:zone t:id="select2ValueZone"><select t:type="Select" > t:id="selectValue2" t:validate="required"/></t:zone> > </form> > </body> > > JSON Response: > {"content":"","zones":{"select2ValueZone":"<select > id='selectValue2-127fe104b7d' name='selectValue2'><option value='4'>4 post > ajax<\/option><option value='5'>5 post ajax<\/option><option value='6'>6 > post ajax<\/option><option value='7'>7 post ajax<\/option><\/select> > <input><\/input>","select1ValueZone":"Show"}} > >