[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