---
name: "HTML::FormFu::Role::Element::Group"
section: "3pm"
platform: "linux"
package: "libhtml-formfu-perl"
version: "2.07000-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/HTML::FormFu::Role::Element::Group"
---

# HTML::FormFu::Role::Element::Group(3pm)

Role for grouped form fields

## NAME

HTML::FormFu::Role::Element::Group - Role for grouped form fields

## VERSION

version 2.07

## DESCRIPTION

Base class for HTML::FormFu::Element::Checkboxgroup, HTML::FormFu::Element::Radiogroup, and HTML::FormFu::Element::Select fields.

## METHODS

### options

Arguments: none

Arguments: \\@options

```
    ---
    elements:
      - type: Select
        name: foo
        options:
          - [ 01, January ]
          - [ 02, February ]
          - value: 03
            label: March
            attributes:
              style: highlighted
          - [ 04, April ]
```

If passed no arguments, it returns an arrayref of the currently set options.

Use to set the list of items in the select menu / radiogroup.

Its arguments must be an array-ref of items. Each item may be an array ref of the form `"[ $value, $label ]"` or a hash-ref of the form `"{ value => $value, label => $label }"`. Each hash-ref may also have an `"attributes"` key.

Passing an item containing a `"group"` key will, for Select fields, create an optgroup. And for Radiogroup fields or Checkboxgroup fields, create a sub-group of radiobuttons or checkboxes with a new `"span"` block, with the classname `"subgroup"`.

An example of Select optgroups:

```
    ---
    elements:
      - type: Select
        name: foo
        options:
          - label: "group 1"
            group:
              - [1a, 'item 1a']
              - [1b, 'item 1b']
          - label: "group 2"
            group:
              - [2a, 'item 2a']
              - [2b, 'item 2b']
```

When using the hash-ref construct, the `"label_xml"` and `"label_loc"` variants of `"label"` are supported, as are the `"value_xml"` and `"value_loc"` variants of `"value"`, the `"attributes_xml"` variant of `"attributes"` and the `"label_attributes_xml"` variant of `"label_attributes"`.

`"container_attributes"` or `"container_attributes_xml"` is used by HTML::FormFu::Element::Checkboxgroup and HTML::FormFu::Element::Radiogroup for the c\<span\> surrounding each item's input and label. It is ignored by HTML::FormFu::Element::Select elements.

`"label_attributes"` / `"label_attributes_xml"` is used by HTML::FormFu::Element::Checkboxgroup and HTML::FormFu::Element::Radiogroup for the c\<label\> tag of each item. It is ignored by HTML::FormFu::Element::Select elements.

### values

Arguments: \\@values

```
    ---
    elements:
      - type: Radiogroup
        name: foo
        values:
          - jan
          - feb
          - mar
          - apr
```

A more concise alternative to "options". Use to set the list of values in the select menu / radiogroup.

Its arguments must be an array-ref of values. The labels used are the result of `ucfirst($value)`.

### value\_range

Arguments: \\@values

```
    ---
    elements:
      - type: Select
        name: foo
        value_range:
          - ""
          - 1
          - 12
```

Similar to "values", but the last 2 values are expanded to a range. Any preceding values are used literally, allowing the common empty first item in select menus.

### empty\_first

If true, then a blank option will be inserted at the start of the option list (regardless of whether "options", "values" or "value\_range" was used to populate the options).  See also "empty\_first\_label".

### empty\_first\_label

### empty\_first\_label\_xml

### empty\_first\_label\_loc

If "empty\_first" is true, and "empty\_first\_label" is set, this value will be used as the label for the first option - so only the first option's value will be empty.

## SEE ALSO

Is a sub-class of, and inherits methods from HTML::FormFu::Role::Element::Field, HTML::FormFu::Element

HTML::FormFu

## AUTHOR

Carl Franks, `"cfranks@cpan.org"`

## LICENSE

This library is free software, you can redistribute it and/or modify it under the same terms as Perl itself.

## AUTHOR

Carl Franks \<cpan@fireartist.com\>

## COPYRIGHT AND LICENSE

This software is copyright (c) 2018 by Carl Franks.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
