On Wednesday 26 September 2007 14:27:22 Carl Franks wrote: > On 26/09/2007, Mario Minati <[EMAIL PROTECTED]> wrote: > > On Wednesday 26 September 2007 12:57:27 Josef Chladek wrote: > > > Am 26.09.2007 um 12:45 schrieb Carl Franks: > > > > On 26/09/2007, Josef Chladek <[EMAIL PROTECTED]> wrote: > > > >> hello again, > > > >> > > > >> in my code: > > > >> > > > >> my $nick = $c->stash->{form}->get_field('nickname'); > > > >> $nick->value($c->stash->{form}->param('username')) if length($c- > > > >> > > > >>> stash->{form}->param('nickname')) == 0; > > > >> > > > >> $c->stash->{form}->process; > > > >> $c->log->debug($c->stash->{form}->get_field('nickname')->value); > > > >> > > > >> in the debug output I can see that nickname is set to the username, > > > >> when the form is rendered, the nickname field stays empty - what am > > > >> I doing wrong? > > > > > > > > For text fields, value() is just an alias to default() - and default > > > > is ignored when rendering after a submission. > > > > > > > > I think either of these solutions should work: > > > > > > > > $nick->default( $form->param('username') ); > > > > $nick->force_default(1); > > > > > > > > or > > > > > > > > $form->add_valid( 'nickname', $form->param('username') ); > > > > > > > > Carl > > > > > > the latter I'd tried before (and did not work), the solution with > > > force_default did it. > > > > You have to change > > $c->stash->{form}->input->{'nickname' } > > to get your behaviour, but that is a hack as it relies on the internal > > behaviour of FormFu, which might change. > > > > So Carl's way is nicer. > > > > In general I think we should create a filter that can do this work for > > fields that takes the value of an other field, as this is a common task. > > > > And we could create a shortcut like 'overwrite_value' to do this task in > > one function. > > I think a filter would be a good idea. > > I think rather than create a new method, I'll take a look at > add_valid(), and see why that doesn't work.
I created this method allready, but I will remove it again. I just had a look at add_valid and _render_value ind _field and add_valid.t and looks good. Greets, Mario _______________________________________________ HTML-FormFu mailing list HTML-FormFu@lists.scsys.co.uk http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu