[html-formfu] Possible bug - Submit element when forms have errors

Carl Franks fireartist at gmail.com
Wed Feb 18 09:38:58 GMT 2009


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



More information about the HTML-FormFu mailing list