Ivano,

I'm pretty sure what you want to do is provide an onValidate method in
your page class.  That method gets called expressly for doing more
complicated validation.  If you have more than one form, you'll have to
further specify it e.g. onValidateFromMyFormName (or use @OnEvent
annotation).  Here's some abbreviated code:

@InjectComponent("fielda")
private TextField fieldaComponent;

@InjectComponent
private Form formComponent;
...

Object onValidate() {
    If (fielda == null)
        formComponent.recordError(fieldaComponent, "Example error
message for fielda");

    if (fielda=="") && (fieldb=="" || fieldc=="")
       throw new RuntimeException();

    return null;  // this will keep you on the same page

//    return NewPage.class; // this will goto the NewPage page, etc.
etc.
}

You may just want to provide a validation message.  I've shown an
example using fielda in the preceding code.

Read the docs on the Form component, and see the examples in the user
guide.

Cheers
-----Original Message-----
From: Ivano Luberti [mailto:lube...@archicoop.it]
Sent: Monday, March 09, 2009 8:30 AM
To: Tapestry users
Subject: cross field validation with empty fields

Sorry to ask for this again, but I have seen no answer.
I will get no answer again I will stop asking for this, of course.

TIA

----------------
Hello, we are using T4.1
We have to validate a form and we don't want to do it client side.
Let say we have three text fields.
The validation should implement the following rule:
if (fielda="") && (fieldb="" || fieldc="")
 then throw new Exception("");

The problem is that we cannot link the validation to neither field
because they can be empty and the custom validator we are trying to
implement is nevere called if the field is empty.
We tried to  follow the Identity validator but it is also not called
when the field to which is associated is empty.

Is there another way to accomplish cross field validation ?

It seems to us that in T4.1  lacks a validator attribute for the form
component.



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org


This message (including any attachments) is intended only for the use of the 
individual or entity to whom it is addressed and may contain information that 
is non-public, proprietary, privileged, confidential, and exempt from 
disclosure under applicable law or may constitute attorney work product. If you 
are not the intended recipient, you are hereby notified that any use, 
dissemination, distribution, or copying of this communication is strictly 
prohibited. If you have received this communication in error, please notify us 
immediately by telephone and (i) destroy this message if a facsimile or (ii) 
delete this message immediately if an electronic communication.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to