Extends
Constructor
new OO.ui.FormLayout([config])
#
Hierarchy
FormLayouts are used to wrap FieldsetLayouts when you intend to use
browser-based form submission for the fields instead of handling them in JavaScript. Form layouts
can be configured with an HTML form action, an encoding type, and a method using the #action,
#enctype, and #method configs, respectively.
See the OOUI documentation on MediaWiki for more information and examples.
Only widgets from the InputWidget family support form submission. It
includes standard form elements like checkboxes, radio buttons and text fields, as well as
some fancier controls. Some controls have both regular and InputWidget variants, for example
OO.ui.DropdownWidget and OO.ui.DropdownInputWidget – only the latter support form submission and
often have simplified APIs to match the capabilities of HTML forms.
See the OOUI documentation on MediaWiki for more information about InputWidgets.
Example
// Example of a form layout that wraps a fieldset layout.
const input1 = new OO.ui.TextInputWidget( {
placeholder: 'Username'
} ),
input2 = new OO.ui.TextInputWidget( {
placeholder: 'Password',
type: 'password'
} ),
submit = new OO.ui.ButtonInputWidget( {
label: 'Submit'
} ),
fieldset = new OO.ui.FieldsetLayout( {
label: 'A form layout'
} );
fieldset.addItems( [
new OO.ui.FieldLayout( input1, {
label: 'Username',
align: 'top'
} ),
new OO.ui.FieldLayout( input2, {
label: 'Password',
align: 'top'
} ),
new OO.ui.FieldLayout( submit )
] );
const form = new OO.ui.FormLayout( {
items: [ fieldset ],
action: '/api/formhandler',
method: 'get'
} )
$( document.body ).append( form.$element );
Parameters:
| Name | Type | Attributes | Description | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
config |
Object |
optional |
Configuration options Properties:
|
- Mixes in:
- Source:
FormLayouts are used to wrap FieldsetLayouts when you intend to use
browser-based form submission for the fields instead of handling them in JavaScript.
Properties
tagNamestatic
#
- Source:
Methods
getClosestScrollableElementContainer() → {HTMLElement}
#
Get closest scrollable container.
Returns:
Closest scrollable container
- Type
- HTMLElement
- Inherited from:
- Source:
getData() → {any}
#
Get element data.
Returns:
Element data
- Type
- any
- Inherited from:
- Source:
getElementDocument() → {HTMLDocument}
#
getElementGroup() → {OO.ui.mixin.GroupElement|null}
#
null}
#
Get group element is in.
Returns:
Group element, null if none
- Type
-
OO.ui.mixin.GroupElement
|
null
- Inherited from:
- Source:
getElementId() → {string}
#
Ensure that the element has an 'id' attribute, setting it to an unique value if it's missing, and return its value.
Returns:
- Type
- string
- Inherited from:
- Source:
Ensure that the element has an 'id' attribute, setting it to an unique value if it's missing, and return its value.
getElementWindow() → {Window}
#
getTagName() → {string}
#
Get the HTML tag name.
Override this method to base the result on instance information.
Returns:
HTML tag name
- Type
- string
- Inherited from:
- Source:
isElementAttached() → {boolean}
#
Check if the element is attached to the DOM
Returns:
The element is attached to the DOM
- Type
- boolean
- Inherited from:
- Source:
isVisible() → {boolean}
#
Check if element is visible.
Returns:
element is visible
- Type
- boolean
- Inherited from:
- Source:
resetScroll() → {OO.ui.Layout}chainable
#
restorePreInfuseState(state)protected
#
Restore the pre-infusion dynamic state for this widget.
This method is called after #$element has been inserted into DOM. The parameter is the return value of #gatherPreInfuseState.
Parameters:
| Name | Type | Description |
|---|---|---|
state |
Object |
- Inherited from:
- Source:
scrollElementIntoView([config]) → {jQuery.Promise}
#
Scroll element into view.
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
config |
Object |
optional |
Configuration options |
Returns:
Promise which resolves when the scroll is complete
- Type
- jQuery.Promise
- Inherited from:
- Source:
setData(data) → {OO.ui.Element}chainable
#
Set element data.
Parameters:
| Name | Type | Description |
|---|---|---|
data |
any | Element data |
Returns:
The element, for chaining
- Type
- OO.ui.Element
- Inherited from:
- Source:
setElementGroup(group) → {OO.ui.Element}chainable
#
Set group element is in.
Parameters:
| Name | Type | Description |
|---|---|---|
group |
OO.ui.mixin.GroupElement
|
null
|
Group element, null if none |
Returns:
The element, for chaining
- Type
- OO.ui.Element
- Inherited from:
- Source:
setElementId(id) → {OO.ui.Element}chainable
#
Set the element has an 'id' attribute.
Parameters:
| Name | Type | Description |
|---|---|---|
id |
string |
Returns:
The element, for chaining
- Type
- OO.ui.Element
- Inherited from:
- Source:
supports(methods) → {boolean}
#
Check if element supports one or more methods.
Parameters:
| Name | Type | Description |
|---|---|---|
methods |
string | Array.<string> | Method or list of methods to check |
Returns:
All methods are supported
- Type
- boolean
- Inherited from:
- Source:
toggle([show]) → {OO.ui.Element}chainable
#
Toggle visibility of an element.
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
show |
boolean |
optional |
Make element visible, omit to toggle visibility |
Returns:
The element, for chaining
- Type
- OO.ui.Element
Fires:
- Inherited from:
- Source:
updateThemeClasses()
#
Update the theme-provided classes.
This is called in element mixins and widget classes any time state changes. Updating is debounced, minimizing overhead of changing multiple attributes and guaranteeing that theme updates do not occur within an element's constructor
- Inherited from:
- Source:
Events
submit()
#
A 'submit' event is emitted when the form is submitted.
- Source: