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"}}
>
>

Reply via email to