HTML-Object
view release on metacpan or search on metacpan
lib/HTML/Object/DOM/Element/Form.pm view on Meta::CPAN
##----------------------------------------------------------------------------
## HTML Object - ~/lib/HTML/Object/DOM/Element/Form.pm
## Version v0.2.1
## Copyright(c) 2022 DEGUEST Pte. Ltd.
## Author: Jacques Deguest <jack@deguest.jp>
## Created 2021/12/23
## Modified 2024/04/30
## All rights reserved
##
##
## This program is free software; you can redistribute it and/or modify it
## under the same terms as Perl itself.
##----------------------------------------------------------------------------
package HTML::Object::DOM::Element::Form;
BEGIN
{
use strict;
use warnings;
warnings::register_categories( 'HTML::Object' );
use parent qw( HTML::Object::DOM::Element );
use vars qw( $VERSION );
use HTML::Object::DOM::Element::Shared qw( :form );
our $VERSION = 'v0.2.1';
};
use strict;
use warnings;
sub init
{
my $self = shift( @_ );
$self->{checkValidity} = 1;
$self->{reportValidity} = 1;
$self->{_init_strict_use_sub} = 1;
$self->SUPER::init( @_ ) || return( $self->pass_error );
$self->{tag} = 'form' if( !CORE::length( "$self->{tag}" ) );
return( $self );
}
# Note: property attribute
sub acceptCharset : lvalue { return( shift->_set_get_property( 'accept-charset', @_ ) ); }
# Note: property attribute
sub action : lvalue { return( shift->_set_get_property( 'action', @_ ) ); }
# Note: property accept inherited
# Note: property autocapitalize inherited
# Note: method checkValidity inherited
# Note: property read-only
# Same as in HTML::Object::DOM::FieldSet
sub elements
{
my $self = shift( @_ );
my $children = $self->children;
# my $form_elements = $self->new_array( [qw( button datalist fieldset input label legend meter optgroup option output progress select textarea )] );
# <https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/elements#value>
my $form_elements = $self->new_array( [qw( button fieldset input object output select textarea )] );
my $list = $form_elements->as_hash;
my $results = $children->grep(sub{ exists( $form_elements->{ $_->tag } ) });
my $col = $self->new_collection_elements;
$col->push( $results->list );
return( $col );
}
# Note: property
sub encoding : lvalue { return( shift->_set_get_property( 'encoding', @_ ) ); }
# Note: property
sub length : lvalue { return( shift->_set_get_property( 'length', @_ ) ); }
# Note: property
sub method : lvalue { return( shift->_set_get_property( 'method', @_ ) ); }
# Note: property name inherited
# Note: property
sub noValidate : lvalue { return( shift->_set_get_property( { attribute => 'novalidate', is_boolean => 1 }, @_ ) ); }
sub requestSubmit { return( shift->_set_get_object_without_init( 'requestSubmit', 'HTML::Object::DOM::Element', @_ ) ); }
# Note: method reportValidity inherited
sub submit { return; }
# Note: property target
sub target : lvalue { return( shift->_set_get_property( { attribute => 'target', is_uri => 1 }, @_ ) ); }
1;
# NOTE: POD
__END__
=encoding utf-8
=head1 NAME
HTML::Object::DOM::Element::Form - HTML Object DOM Form Class
=head1 SYNOPSIS
use HTML::Object::DOM::Element::Form;
my $form = HTML::Object::DOM::Element::Form->new ||
die( HTML::Object::DOM::Element::Form->error, "\n" );
=head1 VERSION
v0.2.1
=head1 DESCRIPTION
This interface represents a <form> element in the DOM. It allows access to-and, in some cases, modification of-aspects of the form, as well as access to its component elements.
=head1 INHERITANCE
+-----------------------+ +---------------------------+ +-------------------------+ +----------------------------+ +----------------------------------+
| HTML::Object::Element | --> | HTML::Object::EventTarget | --> | HTML::Object::DOM::Node | --> | HTML::Object::DOM::Element | --> | HTML::Object::DOM::Element::Form |
( run in 1.138 second using v1.01-cache-2.11-cpan-39bf76dae61 )