HTML::DOM::Element::Form - A Perl class for representing 'form' elements in an HTML DOM tree


NAME

HTML::DOM::Element::Form - A Perl class for representing 'form' elements in an HTML DOM tree


SYNOPSIS

  use HTML::DOM;
  $doc = HTML::DOM->new;
  $elem = $doc->createElement('form');
  $elem->method('GET') # set attribute
  $elem->method;       # get attribute
  $elem->enctype;
  $elem->tagName;
  # etc


DESCRIPTION

This class implements 'form' elements in an HTML::DOM tree. It implements the HTMLFormElement DOM interface and inherits from the HTML::DOM::Element manpage (q.v.).

A form object can be used as a hash or an array, to access its input fields, so $form->[0] >> and $form->{name} >> are shorthand for $form->elements->[0] >> and $form->elements->{name} >, respectively.

This class also tries to mimic the HTML::Form manpage, but is not entirely compatible with its interface. See WWW::Mechanize COMPATIBILITY, below.


DOM METHODS

In addition to those inherited from HTML::DOM::Element and HTML::DOM::Node, this class implements the following DOM methods:

elements

Returns a collection (the HTML::DOM::Collection::Elements manpage object) in scalar context, or a list in list context, of all the input fields this form contains. This differs slightly from the inputs method (part of the HTML::Form interface) in that it includes 'button' elements, whereas inputs does not (though it does include 'input' elements with 'button' for the type).

length

Same as $form->elements->length.

name
acceptCharset
action
enctype
method
target

Each of these returns the corresponding HTML attribute (acceptCharset corresponds to the 'accept-charset' attribute). If you pass an argument, it will become the new value of the attribute, and the old value will be returned.

submit

This triggers the form's 'submit' event, calling the default event handler (see EVENT HANDLING in the HTML::DOM manpage). It is up to the default event handler to take any further action. The form's make_request method may come in handy.

This method is actually just short for $form->trigger_event('submit'). (See the HTML::DOM::EventTarget manpage.)

reset

This triggers the form's 'reset' event.

trigger_event

This class overrides the superclasses' method to trigger the default event handler for form submissions,when the submit event occurs, and reset the form when a reset event occurs.


WWW::Mechanize COMPATIBILITY

In order to work with the WWW::Mechanize manpage, this module mimics, and is partly compatible with the interface of, the HTML::Form manpage.

HTML::Form's class methods do not apply. If you call HTML::DOM::Element::Form->parse, for instance, you'll just get an error, because it doesn't exist.

The dump and try_others methods do not exist either.

The click method behaves differently from HTML::Form's, in that it does not call make_request, but triggers a 'click' event if there is a button to click, or a 'submit' event otherwise.

The method, action, enctype, attr, inputs, find_input, value, param, make_request and form methods should work as expected.


SEE ALSO

the HTML::DOM manpage

the HTML::DOM::Element manpage

the HTML::DOM::Collection::Elements manpage

the HTML::Form manpage