These examples might help... If you’re not using AJAX then it probably makes more sense to put the Form around the Loop:
T5.4: http://jumpstart.doublenegative.com.au/jumpstart7/examples/tables/editableloop1 <http://jumpstart.doublenegative.com.au/jumpstart7/examples/tables/editableloop1> http://jumpstart.doublenegative.com.au/jumpstart7/examples/tables/editableloopforupdate1 <http://jumpstart.doublenegative.com.au/jumpstart7/examples/tables/editableloopforupdate1> T5.3: http://jumpstart.doublenegative.com.au/jumpstart/examples/tables/editableloop1 <http://jumpstart.doublenegative.com.au/jumpstart/examples/tables/editableloop1> http://jumpstart.doublenegative.com.au/jumpstart/examples/tables/editableloopforupdate1 <http://jumpstart.doublenegative.com.au/jumpstart/examples/tables/editableloopforupdate1> If you’re using AJAX, then a Form per row works well: T5.4: http://jumpstart.doublenegative.com.au/jumpstart7/examples/ajax/formsinaloop <http://jumpstart.doublenegative.com.au/jumpstart7/examples/ajax/formsinaloop> T5.3: http://jumpstart.doublenegative.com.au/jumpstart/examples/ajax/formsinaloop <http://jumpstart.doublenegative.com.au/jumpstart/examples/ajax/formsinaloop> Geoff > On 24 Jul 2015, at 6:55 pm, Matthias Bieber <mabi1...@gmx.de> wrote: > > > Hello, > > I have a loop that creates a few forms and I have implemented the onValidate > method to validate the input. If an error occours in the textarea of the > first form, the textareas of all other forms are marked as erroneous too, > although the forms and textareas have different IDs. Whats wrong? > > Thanks in advance. > M.B. > > > Source code: > > Index.java: > public class Index > { > @Property > private int[] integers= { 1, 2, 3, 4, 5 }; > > @Property > private int anInteger; > > public Index() > { > } > } > > Index.tml: > <html t:type="layout" title="HelloWorld Index" t:sidebarTitle="Framework > Version" xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd" > xmlns:p="tapestry:parameter"> > <t:Loop t:source="integers" t:value="anInteger"> > <div>${anInteger}</div> > <t:MyForm id="anInteger" /> > </t:Loop> > </html> > > MyForm.java: > > public class MyForm > { > @Parameter(required=true) > @Property > private int id; > > @Property > private String text; > > @InjectComponent > private Form form; > > @InjectComponent > private TextArea textarea; > > @Inject > Logger logger; > > @Inject > Messages messages; > > void onPrepareForSubmitFromForm(int id) { > this.id = id; > } > public void onSuccess() { > logger.info("onSuccess()"); > } > > void onValidateFromForm() { > logger.info("id: " + id); > form.recordError(textarea, "Error"); > } > > public String getFormId() { > return "form_" + id; > } > > public String getTextareaId() { > return "textarea_" + id; > } > > public String getSubmitId() { > return "submit_" + id; > } > } > > MyForm.tml: > > <t:container xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd" > xmlns:p="tapestry:parameter"> > <t:form t:id="form" id="prop:formId" t:context="id" > > <t:textarea t:id="textarea" id="prop:textareaId" value="text" > rows="3" cols="50" /> > <t:submit t:id="submit" id="prop:submitId" class="btn btn-large > btn-primary" value="Send" /> > </t:form> > </t:container> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org >