The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Jifty::Web::Form::Element - Some item that can be rendered in a form

DESCRIPTION

Describes any HTML element that might live in a form, and thus might have javascript on it.

Handlers are placed on Jifty::Web::Form::Element objects by calling the name of the javascript event handler, such as onclick, with a set of arguments.

The format of the arguments passed to onclick (or any similar method) is a hash reference or string Strings are inserted verbatim.

Hash references can take a number of possible keys. The most important is the mode of the fragment replacement, if any; it is specified by providing at most one of the following keys:

append => PATH

Add the given PATH as a new fragment, just before the close of the CSS selector given by "element", which defaults to the end of the current region.

prepend => PATH

Add the given PATH as a new fragment, just after the start of the CSS selector given by "element", which defaults to the start of the current region.

replace_with => PATH

Replaces the region specified by the region parameter (which defaults to the current region) with the fragment located at the given PATH. If undef is passed as the PATH, acts like a "delete".

refresh => REGION

Refreshes the given REGION, which should be a Jifty::Web::PageRegion object, or the fully qualified name of such.

refresh_self => 1

Refreshes the current region; this is the default action, if a non-empty args is supplied, but no other mode is given.

delete => REGION

Removes the given REGION from the page, permanently.

The following options are also supported:

toggle => BOOLEAN

If set to true, then the link will possibly toggle the region to empty, if the region's current path is the same as the path the region is trying to be set to.

region => REGION

The region that should be updated. This defaults to the current region.

element => CSS SELECTOR

A css selector specifying where the new region should be placed; used with "append" and "prepend", above. The "get_element" in Jifty::Web::PageRegion method may be useful in specifying elements of parent page regions.

submit => MONIKER

An action, moniker of an action, or array reference to such; these actions are submitted when the event is fired.

args => HASHREF

Arguments to the region. These will override the arguments to the region that the region was given when it was last rendered.

effect => STRING

The Prototype visual effect to use when updating or creating the fragment.

effect_args => HASHREF

A hashref of arguments to pass to the effect when it is created. These can be used to change the duration of the effect, for instance.

handlers

Currently, the only supported event handlers are onclick. WARNING: if you use the onclick handler, make sure that your javascript is "return (function name);", or you may well get a very strange-looking error from your browser.

accessors

Any descendant of Jifty::Web::Form::Element should be able to accept any of the event handlers (above) as one of the keys to its new parameter hash.

javascript

Returns the javascript necessary to make the events happen.

javascript_preempt

Returns true if the the javascript's handlers should prevent the web browser's standard effects from happening; that is, for onclick, it prevents buttons from submitting and the like. The default is to return true, but this can be overridden.

class

Sets the CSS class that the element will display as

key_binding

Sets the key binding associated with this elements

id

Subclasses must override this to provide each element with a unique id.

label

Sets the label of the element. This will be used for the key binding legend, at very least.

render_key_binding

Adds the key binding for this input, if one exists.