As a new FormFu user, I saw that I could modify the form before it got rendered:
sub index :Path :Args(0) :FormConfig { my ( $self, $c ) = @_; my $form = $c->stash->{form}; my $field = $form->get_all_element({name => 'foo'}); $field->label('new label'); # this works if ( $form->submitted_and_valid ) { ... the usual } } However, the same is not true of constraints. Adding the code below to the index sub, before if ( $form->submitted_and_valid ), has no effect: $field->constraint({ type => 'Callback', callback => \&never_gets_called, }); $field->validator('Callback')->callback( \&never_gets_called ); I believe another user encountered the same problem: http://www.mail-archive.com/html-formfu@lists.scsys.co.uk/msg00970.html There are two workarounds: 1. Add the constraint in the form config file 2. Call $form->process before $form->submitted_and_valid. This is really counter-intuitive to new users: since $field->label works without $form->process, why would $field->validator need a $form->process? If form->process() really needs to be called for callbacks to get registered, then maybe the doc for process() should mention this. HTH, Dan _______________________________________________ HTML-FormFu mailing list HTML-FormFu@lists.scsys.co.uk http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu