---
name: "HTML::Widget::Element"
section: "3pm"
platform: "linux"
package: "libhtml-widget-perl"
version: "1.11-7"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/HTML::Widget::Element"
---

# HTML::Widget::Element(3pm)

Element Base Class

## NAME

HTML::Widget::Element - Element Base Class

## SYNOPSIS

```
    my $e = $widget->element( $type, $name, {disabled => 'disabled'} );
    $e->name('bar');
    $e->class('foo');
```

## DESCRIPTION

Element Base Class.

## METHODS

### new

### attributes

### attrs

Arguments: `%attributes`

Arguments: \\%attributes

Return Value: `$element`

Arguments: none

Return Value: \\%attributes

Accepts either a list of key/value pairs, or a hash-ref.

```
    $e->attributes( $key => $value );
    $e->attributes( { $key => $value } );
```

Returns the `$element` object, to allow method chaining.

As of v1.10, passing a hash-ref no longer deletes current  attributes, instead the attributes are added to the current attributes  hash.

This means the attributes hash-ref can no longer be emptied using  `"$e->attributes( { } );"`. Instead, you may use  `"%{ $e->attributes } = ();"`.

As a special case, if no arguments are passed, the return value is a  hash-ref of attributes instead of the object reference. This provides  backwards compatibility to support:

```
    $e->attributes->{key} = $value;
```

"attrs" is an alias for "attributes".

### container

Arguments: \\%attributes

Return Value: `$container`

Creates a new `$container_class`. Defaults to HTML::Widget::Container.

### id

Arguments: `$widget`

Return Value: `$id`

Creates a element id.

### init

Arguments: `$widget`

Called once when **process()** gets called for the first time.

### mk\_error

Arguments: `$widget`, \\@errors

Return Value: `$error`

Creates a new HTML::Widget::Error.

### mk\_input

Arguments: `$widget`, \\%attributes, \\@errors

Return Value: `$input_tag`

Creates a new input tag.

### mk\_tag

Arguments: `$widget`, `$tagtype`, \\%attributes, \\@errors

Return Value: `$element_tag`

Creates a new tag.

### mk\_label

Arguments: `$widget`, `$name`, `$comment`, \\@errors

Return Value: `$label_tag`

Creates a new label tag.

### name

Arguments: `$name`

Return Value: `$name`

Contains the element name.

### passive

Arguments: `$bool`

Return Value: `$bool`

Defines if element gets automatically rendered.

### prepare

Arguments: `$widget`

Called whenever `"$widget->process"` gets called, before  `"$element->process"`.

### process

Arguments: \\%params, \\@uploads

Return Value: \\@errors

Called whenever `"$widget->process"` is called.

Returns an arrayref of HTML::Widget::Error objects.

### containerize

Arguments: `$widget`, `$value`, \\@errors

Return Value: `$container_tag`

Containerize the element, label and error for later rendering.  Uses HTML::Widget::Container by default, but this can be over-ridden on  a class or instance basis via "container\_class".

### container\_class

Arguments: `$class`

Return Value: `$class`

Contains the class to use for contain the element which then get rendered. Defaults to HTML::Widget::Container. `"container_class"` can be set at a class or instance level:

```
  HTML::Widget::Element->container_class('My::Container');
  # Override default to custom class

  HTML::Widget::Element::Password->container_class(undef);
  # Passwords use the default class

  $w->element('Textfield')->name('foo')->container_class->('My::Other::Container');
  # This element only will use My::Other::Container to render
```

### find\_elements

Return Value: \\@elements

For non-block-container elements, simply returns a one-element list containing this element.

### new

### allow\_filter

Used by `"$widget->filter_all"`. If false, the filter won't be added.

Default true.

### allow\_constraint

Used by `"$widget->constraint_all"`. If false, the filter won't be added.

Default true.

## AUTHOR

Sebastian Riedel, `"sri@oook.de"`

## LICENSE

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