Given a form definition like this:
indicator: submit
auto_fieldset: 1
default_model: DBIC
model: DBIC
auto_label: %n

elements:
  - type: Text
    name: name

  - type: Checkbox
    name: check1
    default_empty_value: 1
    label: Check here for 1

  - type: Checkbox
    name: check2
    default_empty_value: 1
    label: Check here for 2

  - type: Checkbox
    name: check3
    default_empty_value: 1
    label: Check here for 4

  - type: Select
    name: c
    empty_first: 1

constraints:
 - SingleValue

A statement like my $s = $form->get_element({type=>'Select'}); will return nothing.
However, if I remove the auto_fieldset above, the return will be correct.

My research indicates that the bug is in the _get_elements routine, around line 50. If auto_fieldset is on, then $elements is an array with ONE element (the fieldset), which contains a hash, which contains the array of more elements (the input field, the checkboxes, and the select). The grep only operates on the outermost array, therefore it fails
to produce the correct result.

When auto_fieldset is not on, the $elements contains the fields directly, without the fieldset, and
the result is correct.

I think some kind of a recursive descent into the fieldsets will have to be implemented...


_______________________________________________
HTML-FormFu mailing list
HTML-FormFu@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu

Reply via email to