[Html-widget] How to detect valid _and_ submitted?
Tobias Kremer
t at funkreich.de
Fri Sep 8 11:18:03 CEST 2006
Ok, I just don't get it: What's the correct way to determine if a form has been
submitted _AND_ filled out correctly?
There's valid() which returns an array of valid elements - this one is true as
soon as one of many elements is valid (and I don't want to check if the number
of array elements equals the number of must-be-valid columns). Then there's
has_errors() which can potentially be true even if the form hasn't been
submitted yet (just displayed for the first time). Is there nothing like an
is_valid_and_submitted() method?
I'm using Catalyst and the HTML::Widget plugin which makes use of the
indicator() method to hold back validation until the first submission. But
just doing the following does not work:
my $w = $c->widget_result( 'my_form' );
$c->forward( 'do_it' ) unless $w->has_errors;
When the form is display for the first time, has_errors() is 0, thus
forward() is executed immediately. The following doesn't work either:
my $w = $c->widget_result( 'my_form' );
$c->forward( 'do_it' ) if $w->valid;
forward() is executed as soon as one field is valid. The following works but
is quite tedious IMHO:
$c->forward( 'do_it' ) if !$c->widget_result( 'my_form' )->has_errors &&
$c->request->param( $w->indicator );
So how does one pull this sort of basic functionality off? I'm using the
latest HTML::Widget 1.08 (Rev.70) from SVN.
Thanks a lot and sorry for posting Catalyst examples but I'm sure
there are some Cat dudes around here :)
-- Tobias
More information about the Html-widget
mailing list