- name [VALUE]
- class [VALUE]
- type [VALUE]
- key_binding VALUE
- default_value [VALUE]
- sticky_value [VALUE]
- input_name [VALUE]
- label [VALUE]
- action [VALUE]
Jifty::Web::Form::Field - Web input of some sort
Describes a form input in a Jifty::Action.
Jifty::Web::Form::Fields know what action they are on, and aquire properties from the Jifty::Action which they are part of. Each key in the "arguments" in Jifty::Action hash becomes a
Jifty::Web::Form::Field whose "name" is that key.
Creates a new Jifty::Web::Form::Field (possibly magically blessing into a subclass). Should only be called from
Lists the accessors that are able to be called from within a call to
new. Subclasses should extend this list.
Gets or sets the name of the field. This is seperate from the name of the label (see "label") and the form input name (see "input_name"), though both default to this name. This name should match to a key in the "arguments" in Jifty::Action hash. If this
Jifty::Web::Form::Field was created via "form_field" in Jifty::Action, this is automatically set for you.
Gets or sets the CSS display class applied to the label and widget.
Gets or sets the type of the HTML <input> field -- that is, 'text' or 'password'. Defauts to 'text'.
Sets this form field's "submit" key binding to VALUE.
Gets or sets the default value for the form.
Gets or sets the value for the form field that was submitted in the last action.
For the purposes of Jifty::Web::Form::Element, the unique id of this field is its input name.
Gets or sets the form field input name, as it is rendered in the HTML. If we've been explicitly named, return that, otherwise return a name based on the moniker of the action and the name of the form.
Return the form field's fallback name. This should be used to create a hidden input with a value of 0 to accompany checkboxes or to let comboboxes fall back to the text input if, and only if no value is selected from the SELECT. (We use this order, so that we can stick the label and not the value in the INPUT field. To make that work, we also need to clear the SELECT after the user types in the INPUT.
Gets or sets the label on the field. This defaults to the name of the object.
Returns a unique
id attribute for this field based on the field name. This is consistent for the life of the Jifty::Web::Form::Field object but isn't predictable;
Gets the current value we should be using for this form field.
If the argument is marked as "sticky" (default) and there is a value for this field from a previous action submit AND that action did not have a "success" response, returns that submit's value. Otherwise, returns the action's argument's default_value for this field.
Outputs this form element in a span with class
form_field. This outputs the label, the widget itself, any hints, and any errors, using "render_label", "render_widget", "render_hints", "render_errors" respectively. Returns an empty string.
This is also what
Jifty::Web::Form::Fields do when stringified.
Renders a default CSS class for each part of our widget.
Output the start of div that wraps the form field
Output the div that wraps the form field
Outputs the preamble of this form field, using a <span> HTML element with CSS class
preamble and whatever "class" specifies. Returns an empty string.
Use this for sticking instructions right in front of a widget
Outputs the label of this form field, using a <label> HTML element with the CSS class
label and whatever "class" specifies. Returns an empty string.
Outputs the actual entry widget for this form element. This defaults to an <input> element, though subclasses commonly override this. Returns an empty string.
If your widget subclass has other properties it wants to insert into the html of the main widget and you haven't subclassed render_widget,
just stick them in your local sub render_widget.
We use this for marking password fields as not-autocomplete
Returns the "class=" line for our widget. Optionally takes extra classes to append to our list.
Renders a "view" version of the widget for field. Usually, this is just plain text.
Renders any hints for using this input. Defaults to nothing, though subclasses commonly override this. Returns an empty string.
Outputs a <div> with any errors for this action, even if there are none -- AJAX could fill it in.