Why not adopt me?
NAME
HTML::FormFu::Element - Element Base Class
SYNOPSIS
---
elements:
- type: Text
name: username
constraints:
- type: Required
- type: Password
name: password
constraints:
- type: Required
- type: Equal
others: repeat-password
- type: Password
name: repeat-password
- type: Submit
DESCRIPTION
Elements are the basic building block of all forms. Elements may be logical form-fields, blocks such as div
s and fieldset
s, non-blocks such as hr
s and other special elements such as tables.
For simple, automatic handling of fieldsets see the "auto_fieldset" in HTML::FormFu setting.
See "deflators" in HTML::FormFu for details of Deflators.
See "FORM LOGIC AND VALIDATION" in HTML::FormFu for details of Filters, Constraints, Inflators, Validators and Transformers.
METHODS
name
For field element, this value is used as the name
attribute which the field's value is associated with.
For all elements, the "name" value can be useful for identifying and retrieving specific elements.
is_field
Return Value: boolean
Returns true
or false
depending on whether the element is a logical form-field.
This is used by "get_fields" in HTML::FormFu.
BUILDING AN ELEMENT
load_config_file
Arguments: $filename
Arguments: \@filenames
Populate an element using a config file:
---
elements:
- type: Block
load_config_file: 'elements.yml'
See "load_config_file" in HTML::FormFu for further details.
load_config_filestem
Arguments: $filestem
Arguments: \@filestems
Like "load_config_file", but you shouldn't include the file extension in the passed string. This allows you to change your config-file type, without having to change the code that loads the files.
config_file_path
Arguments: $directory_name
"config_file_path" defines where configuration files will be searched for, if an absolute path is not given to "load_config_file".
Default Value: not defined
This method is a special 'inherited accessor', which means it can be set on the form, a block element or a single element. When the value is read, if no value is defined it automatically traverses the element's hierarchy of parents, through any block elements and up to the form, searching for a defined value.
config_callback
See "config_callback" in HTML::FormFu for details.
populate
See "populate" in HTML::FormFu for details.
stash
See "stash" in HTML::FormFu for details.
type
Returns the type
argument originally used to create the element.
CHANGING DEFAULT BEHAVIOUR
render_processed_value
See "render_processed_value" in HTML::FormFu for details.
force_errors
See "force_errors" in HTML::FormFu for details.
ELEMENT ATTRIBUTES
See specific element types for which tag attributes are added to.
attributes
attrs
Arguments: [%attributes]
Arguments: [\%attributes]
Return Value: $form
See "attributes" in HTML::FormFu for details.
"attrs" is an alias for "attributes".
attributes_xml
attrs_xml
See "attributes_xml" in HTML::FormFu for details.
"attrs_xml" is an alias for "attributes_xml".
add_attributes
add_attrs
Arguments: [%attributes]
Arguments: [\%attributes]
Return Value: $form
See "add_attributes" in HTML::FormFu for details.
"add_attrs" is an alias for "add_attributes".
add_attributes_xml
add_attrs_xml
See "add_attributes_xml" in HTML::FormFu for details.
"add_attrs_xml" is an alias for "add_attributes_xml".
del_attributes
del_attrs
Arguments: [%attributes]
Arguments: [\%attributes]
Return Value: $form
See "del_attributes" in HTML::FormFu for details.
"del_attrs" is an alias for "del_attributes".
del_attributes_xml
del_attrs_xml
See "del_attributes_xml" in HTML::FormFu for details.
"del_attrs_xml" is an alias for "del_attributes_xml".
The following methods are shortcuts for accessing "attributes" keys.
id
Arguments: [$id]
Return Value: $id
Get or set the element's DOM id.
Default Value: none
MODEL / DATABASE INTERACTION
See HTML::FormFu::Model for further details and available models.
model_config
Arguments: \%config
RENDERING
filename
This value identifies which template file should be used by "render" to render the element.
prepare_id
Arguments: $render
See "prepare_id" in HTML::FormFu::Element::_Field for details.
prepare_attrs
Arguments: $render
See "prepare_attrs" in HTML::FormFu::Element::_Field for details.
render
Return Value: $string
INTROSPECTION
parent
Returns the block element or form object that this element is attached to.
get_parent
Arguments: \%options
my $repeatable = $field->get_parent({ type => 'Repeatable' });
Traverses the parent hierarchy, returning the first parent that matches the supplied options.
form
Returns the HTML::FormFu object that the constraint's field is attached to.
clone
See "clone" in HTML::FormFu for details.
ADVANCED CUSTOMISATION
tt_args
See "tt_args" in HTML::FormFu for details.
render_method
See "render_method" in HTML::FormFu for details.
CORE FORM FIELDS
- HTML::FormFu::Element::Button
- HTML::FormFu::Element::Checkbox
- HTML::FormFu::Element::Checkboxgroup
- HTML::FormFu::Element::ComboBox
- HTML::FormFu::Element::ContentButton
- HTML::FormFu::Element::Date
- HTML::FormFu::Element::File
- HTML::FormFu::Element::Hidden
- HTML::FormFu::Element::Image
- HTML::FormFu::Element::Number
- HTML::FormFu::Element::Password
- HTML::FormFu::Element::Radio
- HTML::FormFu::Element::Radiogroup
- HTML::FormFu::Element::Reset
- HTML::FormFu::Element::Select
- HTML::FormFu::Element::Submit
- HTML::FormFu::Element::Textarea
- HTML::FormFu::Element::Text
OTHER CORE ELEMENTS
- HTML::FormFu::Element::Blank
- HTML::FormFu::Element::Block
- HTML::FormFu::Element::Fieldset
- HTML::FormFu::Element::Hr
- HTML::FormFu::Element::Label
- HTML::FormFu::Element::Multi
- HTML::FormFu::Element::Repeatable
- HTML::FormFu::Element::SimpleTable
- HTML::FormFu::Element::Src
ELEMENT BASE CLASSES
The following are base classes for other elements, and generally needn't be used directly.
- HTML::FormFu::Element::_Field
- HTML::FormFu::Element::_Group
- HTML::FormFu::Element::_Input
- HTML::FormFu::Element::_MultiElement
- HTML::FormFu::Element::_MultiSelect
- HTML::FormFu::Element::_MultiText
- HTML::FormFu::Element::_NonBlock
REMOVED METHODS
db
Has been removed; use "default_args" instead.
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.