Version: current

# Class FormAction

Single action button. The action buttons are <input type="submit"> tags.

  Object
  ViewableData implements IteratorAggregate
  RequestHandler
  FormField
  FormAction

### Direct known subclasses

`FormAction_WithoutLabel`, `ImageFormAction`, `ResetFormAction`

Package: forms\actions
Located at sapphire/forms/FormAction.php

## Methods summary

`public` | # `setButtonContent( mixed $content )` Add content inside a button field. Add content inside a button field.
`public` | # `__construct( `FormAction::$action` $action, `FormField::$title` $title = "", `FormField::$form` $form = null, `FormAction::$extraData` $extraData = null, `FormField::$extraClass` $extraClass = '' )` Create a new action button. Create a new action button. #### Parameters $action action The method to call when the button is clicked $title title The label on the button $form form The parent form, auto-set when the field is placed inside a form $extraData extraData A piece of extra data that can be extracted with $this->extraData. Useful for calling $form->buttonClicked()->extraData() $extraClass extraClass A CSS class to apply to the button in addition to 'action' #### Overrides `FormField::__construct`
`public static `Object`` | # `create( string $action, mixed $arguments,…, mixed $extraData = null, mixed $extraClass = null )` An implementation of the factory method, allows you to create an instance of a class An implementation of the factory method, allows you to create an instance of a class This method first for strong class overloads (singletons & DB interaction), then custom class overloads. If an overload is found, an instance of this is returned rather than the original class. To overload a class, use `Object::useCustomClass()` #### Parameters $action string $class the class name $arguments,… mixed $arguments,... arguments to pass to the constructor $extraData $extraClass #### Returns ``Object`` Object #### Overrides `Object::create`
`public` | # `actionName( )`
`public` | # `setFullAction( mixed $fullAction )` Set the full action name, including action_ This provides an opportunity to replace it with something else Set the full action name, including action_ This provides an opportunity to replace it with something else
`public` | # `extraData( )`
`public HTML` | # `Field( )` Create a submit input, or button tag using FormField->createTag() functionality. Create a submit input, or button tag using FormField->createTag() functionality. #### Returns `HTML` code for the input OR button element #### Overrides `FormField::Field`
`public` | # `performReadonlyTransformation( )` Does not transform to readonly by purpose. Globally disabled buttons would break the CMS. Does not transform to readonly by purpose. Globally disabled buttons would break the CMS. #### Overrides `FormField::performReadonlyTransformation`
`public` | # `readonlyField( )`

### Methods inherited from FormField

`FieldHolder()`, `LeftTitle()`, `Link()`, `Message()`, `MessageType()`, `Name()`, `Required()`, `RightTitle()`, `SmallFieldHolder()`, `Title()`, `Type()`, `Value()`, `addExtraAttribute()`, `addExtraClass()`, `allowHTML5()`, `allow_html5()`, `attrName()`, `attrTitle()`, `attrValue()`, `createTag()`, `dataValue()`, `debug()`, `describe()`, `extraClass()`, `fieldHolderTemplates()`, `fieldTemplates()`, `forTemplate()`, `getCustomValidationMessage()`, `getExtraClasses()`, `getForm()`, `getHTML5Attribute()`, `getTabIndex()`, `getTabIndexHTML()`, `hasClass()`, `hasData()`, `id()`, `isComposite()`, `isDisabled()`, `isReadonly()`, `jsValidation()`, `name_to_label()`, `performDisabledTransformation()`, `removeExtraAttribute()`, `removeExtraClass()`, `rootFieldSet()`, `saveInto()`, `securityTokenEnabled()`, `setAutocomplete()`, `setContainerFieldSet()`, `setCustomValidationMessage()`, `setDisabled()`, `setError()`, `setFieldHolderTemplate()`, `setForm()`, `setHTML5Attribute()`, `setLeftTitle()`, `setName()`, `setReadonly()`, `setRightTitle()`, `setSmallFieldHolderTemplate()`, `setTabIndex()`, `setTemplate()`, `setTitle()`, `setValue()`, `smallFieldHolderTemplates()`, `transform()`, `useHTML5()`, `use_html5()`, `validate()`

### Methods inherited from RequestHandler

`allowedActions()`, `checkAccessAction()`, `getRequest()`, `handleRequest()`, `hasAction()`, `httpError()`

### Methods inherited from ViewableData

`ATT_val()`, `BaseHref()`, `CSSClasses()`, `ColumnBreak()`, `ColumnCalc()`, `ColumnNumber()`, `ColumnPad()`, `ColumnPos()`, `CurrentMember()`, `CurrentPage()`, `Debug()`, `Even()`, `EvenOdd()`, `First()`, `FirstLast()`, `HasPerm()`, `IsAjax()`, `JS_val()`, `Last()`, `Me()`, `Middle()`, `MiddleString()`, `Modulus()`, `MultipleOf()`, `Odd()`, `Pos()`, `RAW_val()`, `SQL_val()`, `ThemeDir()`, `ThemeName()`, `Top()`, `TotalItems()`, `XML_val()`, `__get()`, `__isset()`, `__set()`, `buildCastingCache()`, `cachedCall()`, `castingClass()`, `castingHelper()`, `castingHelperPair()`, `castingObjectCreator()`, `castingObjectCreatorPair()`, `customise()`, `defineMethods()`, `escapeTypeForField()`, `getField()`, `getIterator()`, `getSecurityID()`, `getXMLValues()`, `hasField()`, `hasValue()`, `i18nLocale()`, `iteratorProperties()`, `obj()`, `renderWith()`, `setCustomisedObj()`, `setField()`

### Methods inherited from Object

`__call()`, `__toString()`, `__wakeup()`, `addMethodsFrom()`, `addStaticVars()`, `addWrapperMethod()`, `add_extension()`, `add_static_var()`, `allMethodNames()`, `cacheToFile()`, `cacheToFileWithArgs()`, `clearCache()`, `combined_static()`, `createMethod()`, `create_from_string()`, `exists()`, `extInstance()`, `extend()`, `getCustomClass()`, `getExtensionInstance()`, `getExtensionInstances()`, `get_extensions()`, `get_static()`, `hasExtension()`, `hasMethod()`, `has_extension()`, `invokeWithExtensions()`, `is_a()`, `loadCache()`, `parentClass()`, `parse_class_spec()`, `remove_extension()`, `sanitiseCachename()`, `saveCache()`, `set_stat()`, `set_static()`, `set_uninherited()`, `stat()`, `strong_create()`, `uninherited()`, `uninherited_static()`, `useCustomClass()`

### Magic methods summary

## Properties summary

`protected mixed` | $extraData | #
`protected mixed` | $action | #
`public boolean` | $useButtonTag | # Enables the use of <button> instead of <input> in `FormAction::Field()` - for more customizeable styling. Enables the use of <button> instead of <input> in `FormAction::Field()` - for more customizeable styling.

### Properties inherited from FormField

`$autocomplete`, `$containerFieldSet`, `$customValidationMessage`, `$description`, `$disabled`, `$dontEscape`, `$extraAttributes`, `$extraClass`, `$extraClasses`, `$fieldHTML5`, `$fieldHolderTemplate`, `$form`, `$html5Attributes`, `$leftTitle`, `$message`, `$messageType`, `$name`, `$possible_autocomplete_values`, `$readonly`, `$rightTitle`, `$smallFieldHolderTemplate`, `$tabIndex`, `$template`, `$title`, `$use_html5`, `$value`

### Properties inherited from RequestHandler

`$allowed_actions`, `$brokenOnConstruct`, `$request`, `$url_handlers`

### Properties inherited from ViewableData

`$casting`, `$customisedObject`, `$default_cast`, `$failover`, `$iteratorPos`, `$iteratorTotalItems`

### Properties inherited from Object

`$class`, `$extension_instances`, `$extensions`

[Raise a SilverStripe Framework issue/bug](https://github.com/silverstripe/silverstripe-framework/issues/new)
- [Raise a SilverStripe CMS issue/bug](https://github.com/silverstripe/silverstripe-cms/issues/new)
- Please use the Silverstripe Forums to ask development related questions. -