Andrew, thanks for your help. It's working, ALMOST.. 

I simplified my first example as I use some groups with widgets (a
multipage wizard from users perspective). The funny thing is that when I
do the validation on the first group (page) and click 'next' I go to the
activation (visability) of the second group. 
There doesn't seem to be a validation error. Then, when I click
'previous' and return to the first group, the validationerror is shown
on the correct field. It looks like it is only a matter of stopping the
flow to the next page. Something like setting or checking for a
validationerror on the group...

Does anyone know what to do to get this working?
I really appreciate the help.

Joost

------------------------------------------------------------------------
-
<fd:validation>
        <fd:javascript>
                var form = this.getForm();
                var     bloggroup = form.getChild("page1");
                var blogshortcode = bloggroup.getChild("blogtitle");
                blogshortcode.setValidationError(new
Packages.org.apache.cocoon.forms.validation.ValidationError("Error"));
                return false;   
        </fd:javascript>
</fd:validation>


The part with the logic where we go to the next group with widgets:
------------------------------------------------------------------------
--

                <fd:action id="next">
                        <fd:label><i18n:text
i18n:key="createblog.next">Volgende</i18n:text></fd:label>
                        <fd:on-action>
                                <fd:javascript>
                                        var parent =
event.source.parent; 
                                        if (parent.validate()) {
        
parent.setState(WidgetState.INVISIBLE); 
                                                var     blogchoice =
this.lookupWidget("../blogchoice");
        
java.lang.System.out.println("test op blogchoice : " +
blogchoice.getValue().equals("personal"));
                                                if
(!blogchoice.getValue().equals("blogroom")){
        
parent.lookupWidget("../page3").setState(WidgetState.ACTIVE);
                                                } else {
        
parent.lookupWidget("../page2").setState(WidgetState.ACTIVE);
                                                } 
                                        }
                                </fd:javascript>
                        </fd:on-action>
                </fd:action>
        </fd:widgets>
</fd:group>



-----Oorspronkelijk bericht-----
Van: Andrew Timberlake [mailto:[EMAIL PROTECTED] 
Verzonden: Thursday, February 09, 2006 9:59 AM
Aan: [email protected]
Onderwerp: Re: setting a validation error on another field

Joost Kuif wrote:
> Hi people,
> 
> 
> I have a formdefinition with multiple fields. For some of these fields
> uniqueness must be checked against a table in a database. I want to
> check this towards the database with the use of one stored procedure.
I
> tried to with something like the example below, but this didn't work.
> The page is left without a validation warning on the field. Does
anyone
> have an idea how to do setting of a validationerror of a field outside
> of the field?
> 
> <fd:field id="blogshortcode" required="true">
> ...
> <fd:validation>
>  <javascript>
>   //call stored procedure here and optionally 
>   //complain that anotherfield's value is already in use with:
>
widget.getParent().lookupWidget("anotherfield").setValidationError(new
>
Packages.org.apache.cocoon.forms.validation.ValidationError("not_unique"
> ));
>  </javascript>
> </fd:validation>
> </fd:field>
> 
> <fd:field id="anotherfield" required="true">
> ...
> </fd:field>
> 
> 
> 
> Any help would be appreciated.
> 
> Joost
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
I've done this as follows
<fd:validation>
     <fd:javascript>
        if(determinValidation())
        {
             var form = widget.form;
             form.lookupWidget('widget_name').setValicationError(new 
Packages.org.apache.cocoon.forms.validation.ValidationError('Error')
             return false;
         }
     </fd:javascript>
</fd:validation>


The differences I see are:
* using widget.form to locate the form object and then getting the other

widget from the form.
* adding the fd: to javascript
* returning false to ensure the error is noted.

Hope this helps

Andrew

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]