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
> 

Reply via email to