[html-formfu] Clientside validation

Carl Franks fireartist at gmail.com
Wed Mar 5 11:11:43 GMT 2008


On 05/03/2008, Andreas Marienborg <omega at palle.net> wrote:
>
>  On Mar 5, 2008, at 10:54 AM, Carl Franks wrote:
>
>  > On 05/03/2008, Andreas Marienborg <omega at palle.net> wrote:
>  >> Has anyone done any clientside validation with FormFu? Basicly I want
>  >> to only specify constraints etc once, in the FormFu-config, and then
>  >> just have it magicaly work on the forms in the web app, or atleast
>  >> provide me with the information needed to do the client side stuff
>  >> (like what constraints are on a field etc).
>  >>
>  >> If that is not possible, is it possible to process only "part" of a
>  >> form? So I can call back to the server to check each field as they
>  >> are
>  >> filled out?
>  >>
>  >>
>  >> If anyone has any thoughts on any of this, I would be glad to hear it
>  >
>  > I put this JS demo together about a year ago.
>  > http://www.fireartist.com/tmp/client-side-constraint.html
>  >
>  > It supports filters & constraints and uses the same error markup that
>  > server-side validation would generate.
>  >
>  > At the moment, it uses an old version of dojo.
>  > It would probably be best to have the more advanced functionality
>  > (such as class name changes) isolated in core functions, and allow
>  > them to be implemented in different frameworks - and have the
>  > individual constraints, filters, etc only use standard JS.
>  > Although, if someone's willing to write the necessary functions in
>  > cross-browser JS so that we don't need an external library, that would
>  > be great.
>  >
>  > I created the branch /branches/auto-js for this, but have never
>  > checked the changes in, so I'll probably need to start from scratch as
>  > the internals have changed so much since the branch was made.
>  >
>  > I imagine it being implemented such that you can switch it on with
>  > something like:
>  >
>  >    clientside_validation: 1
>  >    clientside_library: 'Dojo'
>
>
> That sounds ideal. I would whip up a MochiKit implementation asap :p
>
>  However, is it possible to easily manipulate what is outputed, so as
>  to add information about constraints etc to the markup?

What exactly are you thinking of?

It's already possible to set classnames to include the constraint type
- see "%t" in
http://search.cpan.org/~cfranks/HTML-FormFu-0.02004/lib/HTML/FormFu.pm#auto_constraint_class

The way the demo works is: it adds the concepts of 'forced' errors.
The spans for forced-errors have a different classname and are hidden using CSS.
JS is used to put the error messages into the spans, so that users
without JS/CSS don't see the error message at all.
(If you've got JS switched on, but CSS turned off, then you'll see the
messages, but then it's a rather unlikely combination.

When the constraints are run, the classname is changed, so that the
appropriate message is either hidden or displayed.

Carl



More information about the HTML-FormFu mailing list