Actions

Form field

From Joomla! Documentation

Revision as of 08:41, 22 May 2013 by Betweenbrain (Talk | contribs)

Form fields are fields in a HTML <form>. Joomla! 2.5 Joomla 2.5 and newer supply the JForm class to conveniently and flexibly create forms with a large amount of form fields. Each form field type is a subclass of JFormField.

In addition to being a flexible page creation tool, JFormFields are used by Joomla! to allow administrators to configure Joomla! or its extensions without changing the underlying code. In Joomla! 1.5, this was handled by the now deprecated JParameter and JElement classes.

To define form fields in the configuration of an extension, you must include them in a named fieldset, such as <fieldset name="basic">, that is within the <fields name="params"> section of the <config> element in your XML manifest file.


Contents

Form validation

Joomla has client-side and server-side form validation capabilities.
Server side validation is the minimum since everything before that can be overridden on the user side. But client-side is the most user-friendly one, so using both is not a bad idea (especially since the latter is unobtrusive and won't give problems on javascript-disabled or -problematic client browsers).

Client-side validation

.. is done via javascript while the user is filling in the form fields.
It uses the HTML classes required and validate-[xxx] (with [xxx] being a joomla or custom rule; e.g. validate-numeric)

More here: Client-side form validation

Server-side validation

.. is done after having submitted the form and will normally return to the form when not validated with some extra messages.
It used the HTML attributes required ("true" or "required") and validate (with value being a joomla or custom rule; e.g. validate="email")

More here: Server-side form validation

Standard form field types

Numerous types of form field are built into Joomla!. The following table lists these standard types and their availability. Use the single-page reference if you want to print all existing form field documentation.

Joomla 1.5 Please note that many of these fields are available as parameter types in Joomla! 1.5. For a list of parameter types, see J1.5:Standard parameter types. For a comparison between form field and parameter types, see Standard form field and parameter types.

Type Description Availability
accesslevel provides a drop down list of viewing access levels. Joomla 2.5 and newer
cachehandler provides a list of available cache handling options. Joomla 2.5 and newer
calendar provides a text box for entry of a date. An icon next to the text box provides a link to a pop-up calendar, which can also be used to enter the date value. Joomla 2.5 and newer
captcha provides a drop down list of the captcha plugins. Joomla 2.5 and newer
category provides a drop down list of categories for an extension. Joomla 2.5 and newer
checkbox provides a single checkbox to be checked or unchecked Joomla 2.5 and newer
checkboxes provides unlimited checkboxes that can be used for multi-select. Joomla 2.5 and newer
Chrome Style provides a list of template chrome style options grouped by template. Joomla 3.0 and newer
color provides a color picker when clicking the input box. Joomla 2.5 and newer
Content Language Provides a list of content languages. Joomla 2.5 and newer
Content Type Provides a list of content types. Joomla 3.1 and newer
combo provides a combo box field. Joomla 2.5 and newer
componentlayout provides a grouped list of core and template alternate layouts for a component item. Joomla 2.5 and newer
contentlanguage provides a list of installed content languages for use in conjunction with the language switcher plugin. Joomla 2.5 and newer
Database Connection Provides a list of available database connections, optionally limiting to a given list. Joomla 2.5 and newer
editor provides an editor area field. Joomla 2.5 and newer
editors Provides a drop down list of the available WYSIWYG editors. Since Joomla 2.5 use plugins form field instead. Joomla 2.5
email provides an email field. Joomla 2.5 and newer
file Joomla 2.5 and newer
filelist provides a drop down list of files from a specified directory. Joomla 2.5 and newer
folderlist provides a drop down list of folders from a specified directory. Joomla 2.5 and newer
groupedlist provides a drop down list of items organized into groups. Joomla 2.5 and newer
header tag provides a drop down list of the header tags (h1-h6). Joomla 3.0 and newer
helpsite provides a drop down list of the help sites for your Joomla installation. Joomla 2.5 and newer
hidden provides a hidden field for saving a form field whose value cannot be altered directly by a user in the Administrator (it can be altered in code or by editing the params.ini file). Joomla 2.5 and newer
imagelist provides a drop down list of image files in a specified directory. Joomla 2.5 and newer
integer provides a drop down list of integers between a minimum and maximum. Joomla 2.5 and newer
language provides a drop down list of the installed languages for the Front-end or Back-end. Joomla 2.5 and newer
list provides a drop down list of custom-defined entries. Joomla 2.5 and newer
media provides modal access to the media manager for insertion of images with upload for users with appropriate permissions. Joomla 2.5 and newer
menu provides a drop down list of the available menus from your Joomla site. Joomla 2.5 and newer
Menu Item provides a drop down list of the available menu items from your Joomla site. Joomla 2.5 and newer
Module Layout provides a list of alternative layout for a module grouped by core and template. Joomla 2.5 and newer
Module Order Provides a drop down to set the ordering of module in a given position Joomla 2.5 and newer
Module Position provides a text input to set the position of a module. Joomla 2.5 and newer
Module Tag provides a list of html5 elements (used to wrap a module in). Joomla 3.0 and newer
note supports a one line text field. Joomla 3.1 and newer
password provides a text box for entry of a password. The password characters will be obscured as they are entered. Joomla 2.5 and newer
plugins provides a list of plugins from a given folder. Joomla 2.5 and newer
radio provides radio buttons to select different options. Joomla 2.5 and newer
repeatable Allows form fields which can have as many options as the user desires. Joomla 3.2 and newer
rules provides a matrix of group by action options for managing access control. Display depends on context. Joomla 2.5 and newer
sessionhandler provides a drop down list of session handler options. Joomla 2.5 and newer
spacer provides a visual separator between form fields. It is purely a visual aid and no value is stored. Joomla 2.5 and newer
sql provides a drop down list of entries obtained by running a query on the Joomla Database. The first results column returned by the query provides the values for the drop down box. Joomla 2.5 and newer
tag provides an entry point for tags (either AJAX or Nested). Joomla 3.1 and newer
tel provides an input field for a telephone number. Joomla 2.5 and newer
templatestyle provides a drop down list of template styles. Joomla 2.5 and newer
text provides a text box for data entry. Joomla 2.5 and newer
textarea provides a text area for entry of multi-line text. Joomla 2.5 and newer
timezone provides a drop down list of time zones. Joomla 2.5 and newer
URL provides a URL text input field. Joomla 2.5 and newer
user provides a modal list of users. Joomla 2.5 and newer
usergroup provides a drop down list of user groups. Joomla 2.5 and newer

Custom form field types

An extension can define its own form field types, which can then be used in its own forms or forms created by another extension. See Creating a custom form field type for instructions.

Modal form field types

If you have a field with a lot of values that don't fit a selection box, you can always make a modal form field that will allow the user to pick an item from a modal page with a table, filtering options, etc. (jut like any administrator table, e.g. "Articles") See Creating a modal form field