The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Data::HTML::Element::Button - Data object for HTML button element.

SYNOPSIS

use Data::HTML::Element::Button;

my $obj = Data::HTML::Element::Button->new(%params);
my $autofocus = $obj->autofocus;
my $css_class = $obj->css_class;
my $data = $obj->data;
my $data_type = $obj->data_type;
my $disabled = $obj->disabled;
my $form = $obj->form;
my $form_action = $obj->form_action;
my $form_enctype = $obj->form_enctype;
my $form_method = $obj->form_method;
my $form_no_validate = $obj->form_no_validate;
my $id = $obj->id;
my $name = $obj->name;
my $pop_over_target = $obj->pop_over_target;
my $type = $obj->type;
my $value = $obj->value;

METHODS

new

my $obj = Data::HTML::Element::Button->new(%params);

Constructor.

  • autofocus

    Button autofocus flag.

    Default value is 0.

  • css_class

    Button CSS class.

    Default value is undef.

  • data

    Button data content. It's reference to array.

    Data type of data is described in 'data_type' parameter.

    Default value is [].

  • data_type

    Button data type for content.

    Possible value are: cb plain tags

    The 'cb' content is code reference. The 'plain' content are string(s). The 'tags' content is structure described in Tags.

    Default value is 'plain'.

  • disabled

    Button autofocus flag.

    Default value is 0.

  • form

    Button form id.

    Default value is undef.

  • form_action

    Button form action URL.

    Default value is undef.

  • form_enctype

    Button form encoding. It's valuable for 'submit' type.

    Possible values are: application/x-www-form-urlencoded multipart/form-data text/plain

    Default value is undef.

  • form_method

    Button form method. It's valuable for 'submit' type.

    Possible values are: get post

    Default value is 'get'.

  • form_no_validate

    Button formnovalidate flag.

    Default value is 0.

  • id

    Button identifier.

    Default value is undef.

  • name

    Button name.

    Default value is undef.

  • pop_over_target

    Button pop over target id.

    Default value is undef.

  • type

    Button element type.

    Possible types: button reset submit

    Default value is 'button'.

  • value

    Button value.

    Default value is undef.

Returns instance of object.

autofocus

my $autofocus = $obj->autofocus;

Get button autofocus flag.

Returns bool value (1/0).

css_class

my $css_class = $obj->css_class;

Get CSS class for button.

Returns string.

data

my $data = $obj->data;

Get data inside button element.

Returns reference to array.

data_type

my $data_type = $obj->data_type;

Get button data type.

Returns string.

disabled

my $disabled = $obj->disabled;

Get button disabled flag.

Returns bool value (1/0).

form

my $form = $obj->form;

Get button form id.

Returns string.

form_action

my $form_action = $obj->form_action;

Get button form action URL.

Returns string.

form_enctype

my $form_enctype = $obj->form_enctype;

Get button form enctype.

Returns string.

form_method

my $form_method = $obj->form_method;

Get button form method.

Returns string.

form_no_validate

my $form_no_validate = $obj->form_no_validate;

Get formnovalidate flag.

Returns bool value (1/0).

id

my $id = $obj->id;

Get button identifier.

Returns string.

name

my $name = $obj->name;

Get button name.

Returns string.

pop_over_target

my $pop_over_target = $obj->pop_over_target;

Get button pop over target id.

Returns string.

type

my $type = $obj->type;

Get button type.

Returns string.

value

my $value = $obj->value;

Get button value.

Returns string.

ERRORS

new():
        Parameter 'autofocus' must be a bool (0/1).
               Value: %s
        Parameter 'css_class' has bad CSS class name.
                Value: %s
        Parameter 'css_class' has bad CSS class name (number on begin).
                Value: %s
        Parameter 'data' must be a array.
               Value: %s
               Reference: %s
        Parameter 'data' in 'plain' mode must contain reference to array with scalars.
        Parameter 'data' in 'tags' mode must contain reference to array with references to array with Tags structure.
        Parameter 'data_type' has bad value.
        Parameter 'disabled' must be a bool (0/1).
               Value: %s
        Parameter 'form_enctype' has bad value.
                Value: %s
        Parameter 'form_method' has bad value.
        Parameter 'formnovalidate' must be a bool (0/1).
               Value: %s
        Parameter 'type' has bad value.

EXAMPLE1

use strict;
use warnings;

use Data::HTML::Element::Button;

my $obj = Data::HTML::Element::Button->new;

# Print out.
print 'Data type: '.$obj->data_type."\n";
print 'Form method: '.$obj->form_method."\n";
print 'Type: '.$obj->type."\n";

# Output:
# Data type: plain
# Form method: get
# Type: button

EXAMPLE2

use strict;
use warnings;

use Data::HTML::Element::Button;
use Tags::Output::Raw;

my $obj = Data::HTML::Element::Button->new(
        # Tags(3pm) structure.
        'data' => [
                ['b', 'span'],
                ['d', 'Button'],
                ['e', 'span'],
        ],
        'data_type' => 'tags',
);

my $tags = Tags::Output::Raw->new;

# Serialize data to output.
$tags->put(@{$obj->data});
my $data = $tags->flush(1);

# Print out.
print 'Data (serialized): '.$data."\n";
print 'Data type: '.$obj->data_type."\n";
print 'Form method: '.$obj->form_method."\n";
print 'Type: '.$obj->type."\n";

# Output:
# Data (serialized): <span>Button</span>
# Data type: tags
# Form method: get
# Type: button

EXAMPLE3

use strict;
use warnings;

use Data::HTML::Element::Button;

my $obj = Data::HTML::Element::Button->new(
        # Plain content.
        'data' => [
                'Button',
        ],
        'data_type' => 'plain',
);

# Serialize data to output.
my $data = join ' ', @{$obj->data};

# Print out.
print 'Data: '.$data."\n";
print 'Data type: '.$obj->data_type."\n";
print 'Form method: '.$obj->form_method."\n";
print 'Type: '.$obj->type."\n";

# Output:
# Data: Button
# Data type: plain
# Form method: get
# Type: button

DEPENDENCIES

Data::HTML::Element::Utils, Error::Pure, List::Util, Mo, Mo::utils, Mo::utils::CSS, Readonly.

REPOSITORY

https://github.com/michal-josef-spacek/Data-HTML-Element

AUTHOR

Michal Josef Špaček mailto:skim@cpan.org

http://skim.cz

LICENSE AND COPYRIGHT

© 2022-2024 Michal Josef Špaček

BSD 2-Clause License

VERSION

0.17