Repeatable form field type

From Joomla! Documentation

Other languages:
Deutsch • ‎English • ‎español • ‎فارسی • ‎français • ‎Nederlands
This field is deprecated

Thank you to use Subform form field type (in multiple mode) instead.

Provides a modal with rows of formfields that you specify. As many options can be added as desired. Note this form field has a jQuery based javascript file as a dependency.

  • name (mandatory) is the unique name of the parameter.
  • type (mandatory) must be repeatable.
  • label (mandatory) (translatable) is the descriptive title of the field.
  • description description text for the form field. Displays at the top of the modal with the name as well as in the usual position in the form.
  • default The default value for the form field if the field is left empty. Note this has to be a json string compatible with the contents of the form field.
  • id id of the hidden form field. (the modal will have this id with an added suffix of "_modal" and the table within the modal will have this id with a suffix of "_modal_table").
  • class class of the table.
  • select (translatable) The text to show on the modal button.
  • icon the icon to show on the select button (is prefixed with "icon-").
  • maximum the maximum number of rows of fields allowed (by default 999 to be effectively infinite).

To create a form field you must first of all create a repeatable form field as usual.


Within this you place open and close tag (if not already in one - if there is an existing fields tag for params etc. this is not needed.) and within this a tag.


The fieldset tag MUST have a name the same as your repeatable field name with "_modal" appended to the end of it - it should also have the in the fieldset tag.


Within this fieldset you then include the form fields that you wish to have repeating (as with any form field).

Example XML Definition

<field name="list_templates"
	default='{"template":["Layout","Simple snippet"],
		"description":["HTMLLayout","Simple HTML snippet"]}'>
	<fieldset hidden="true" name="list_templates_modal" repeat="true">
		<field name="template"
			type="text" />
		<field name="location"
			hide_none="true" />
		<field name="description"
			type="textarea" />

Considerations for the default value

  • The default may contain spaces tabs and new lines [1] (makes for better readability)
  • The data elements within the string must be quoted using " instead of '. Failure to do so will cause the json decode to fail on the default values.

Retrieving you data

The settings of a repeatable form field are returned as a json encoded array (same as the default)

// get the repeatable field value and decode it
$list_hosts 	 = json_decode( $params->get('list_templates'),true);
// loop your result
foreach( $list_templates as $list_templates_idx => $list_template ) {
   // do something clever for each of the templates