I originally reported an issue related to invalid data being lost during form submission and a validation error within the ajaxformloop component which can be found here
http://apache-tapestry-mailing-list-archives.1045711.n5.nabble.com/AjaxFormLoop-losing-field-data-with-validation-error-while-nested-in-form-zone-td5727182.html However; I just discovered this issue also effects the loop component too. I'm assuming there may be a similar issue with the grid component, but have not tested it yet. If I were to take a guess and I'm no expert in how 5.4 handles validation, but my guess is it has something to do with how tapestry holds on and returns those values. clientValidation="none" On Wed, Jun 11, 2014 at 8:36 AM, George Christman <gchrist...@cardaddy.com> wrote: > Does anybody know if this is a framework bug? If so I'll create a jira > issue for it. > > > On Tue, Jun 10, 2014 at 11:56 AM, George Christman < > gchrist...@cardaddy.com> wrote: > >> Sorry, forgot to mention my version, 5.4 beta-10 >> >> >> On Tue, Jun 10, 2014 at 11:52 AM, George Christman < >> gchrist...@cardaddy.com> wrote: >> >>> Hi guys, I have an ajax from with a nested AjaxFormLoop. When ever there >>> is a validation error within the field, I lose the field data completely. >>> This does not happen when the form is not nested in a zone. Any idea what >>> might be causing this? >>> >>> Data to throw validation 12345678 >>> >>> Example code. >>> <t:zone t:id="formZone"> >>> <t:form t:id="form" zone="formZone" clientvalidation="NONE"> >>> <t:errors/> >>> <div t:type="ajaxformloop" t:id="phones" >>> source="person.phones" value="phone" encoder="encoder"> >>> <t:textfield t:id="number" value="phone.number" >>> validate="maxlength=7"/> >>> <t:removerowlink>remove</t:removerowlink> >>> </div> >>> <input type="submit" value="Update"/> >>> </t:form> >>> </t:zone> >>> >>> java >>> >>> void onValidateFromForm() { >>> >>> if(form.getHasErrors()) { >>> ajaxResponseRenderer.addRender("formZone", formZone); >>> } >>> } >>> >>> public ValueEncoder<Phone> getEncoder() { >>> return new ValueEncoder<Phone>() { >>> @Override >>> public String toClient(Phone v) { >>> Long id = v.getId(); >>> return id == null ? "-1" : id.toString(); >>> } >>> @Override >>> public Phone toValue(String toValue) { >>> Phone phone = null; >>> Long id = Long.parseLong(toValue); >>> >>> if (id > 0) { >>> phone = (Phone) session.get(Phone.class, id); >>> } >>> return phone == null ? new Phone() : phone; >>> } >>> }; >>> } >>> -- >>> George Christman >>> www.CarDaddy.com >>> P.O. Box 735 >>> Johnstown, New York >>> >>> >> >> >> -- >> George Christman >> www.CarDaddy.com >> P.O. Box 735 >> Johnstown, New York >> >> > > > -- > George Christman > www.CarDaddy.com > P.O. Box 735 > Johnstown, New York > > -- George Christman www.CarDaddy.com P.O. Box 735 Johnstown, New York