[html-formfu] Possible bug - Submit element when forms have
errors
Greg Coates
greg at coatesoft.com
Wed Feb 18 16:32:57 GMT 2009
Carl Franks wrote:
> 2009/2/18 <onken at houseofdesign.de>:
>> On Tue, 17 Feb 2009 15:30:36 -0800, Greg Coates <greg at coatesoft.com> wrote:
>>> I think I might have found a bug. I have HTML::FormFu version 0.03007
>>> installed. Here's what's happening.
>>>
>>> I created a form that ends with the following 3 submit buttons:
>>> ---
>>> - type: Submit
>>> name: submit
>>> value: Save for Later
>>> - type: Submit
>>> name: submit
>>> value: Finish
>>> - type: Submit
>>> name: submit
>>> value: Cancel
>>>
>>> These display as expected. However, if the form is submitted, contains
>>> errors, and then is re-displayed, the buttons all contain the same text.
>>> Here's the HTML that is generated:
>>>
>>> <input name="submit" type="submit" value="Save for Later" />
>>> <input name="submit" type="submit" value="Save for Later" />
>>> <input name="submit" type="submit" value="Save for Later" />
>>>
>>> All the values get set to the same value for some reason.
>>>
>>> Greg Coates
>>>
>> I think this is not a bug. How should FormFu distinguish between
>> those fields if they have the same name?
>
> You're correct that it'd be better for the different submit buttons to
> have different names.
> However, there may be an argument that a button's rendered value
> shouldn't be affected by any submitted value.
>
> Greg, if your form were changed to something like this:
> ---
> - type: Submit
> name: save
> value: Save for Later
> - type: Submit
> name: finish
> value: Finish
> - type: Submit
> name: cancel
> value: Cancel
>
> Then your code would change from checking the submitted value, to
> checking which name was sent:
> if ( $form->param('save') ) { }
> elsif ( $form->param('finish') ) { }
> # etc...
>
> This works because browsers only submit a name=value pair for the
> submit value that's clicked, and not for any other that wasn't
> clicked.
>
> So, in summary, this may be a bug - but before saying I'll accept a
> patch, I'd prefer to give a time for anyone to speak up if they think
> 'fixing' it could have unfortunate consequences.
>
> Carl
>
> _______________________________________________
> HTML-FormFu mailing list
> HTML-FormFu at lists.scsys.co.uk
> http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu
I have written some forms with different names for the submit buttons.
Then, however, the form doesn't return true for 'submitted_and_valid'
for the second button. (i.e. the 'Finish' button in our example.) I
haven't found a way to mark more than button as the submit button using
the 'indicator' attribute. Am I incorrect in this?
Thanks,
Greg
More information about the HTML-FormFu
mailing list