MultiInput
MultiInput
component is part of the Primer ViewComponents forms framework. If you are building a form, please consider using the framework instead of this standalone component.Description
Multi inputs are comprised of multiple constituent fields, only one of which is visible at a given time. They are designed for situations where constituent inputs are shown or hidden based on the value of another field. For example, consider an address form. If the user chooses the USA as the country, the region input should show a list of states and US territories; if the user instead chooses Canada, the region input should show a list of Canadian provinces, etc.
Unlike everywhere else in Primer forms, constituent inputs are not directly passed a
name
attribute. Instead, developers pass a name
attribute to the multi input itself.
The multi input then automatically assigns each constituent input the same name. This is
done so that the multi input looks like a single field from the server's point of view.
Using the address form example from earlier, this means only one value - either a US state
or a Canadian provice - will be submitted to the server under the region
key.
Actually, that's not quite true. Constituent inputs are given a name
, but it's added to
the input as the data-name
attribute as a way to identify constituent inputs, and will not
be sent to the server.
Arguments
Name | Required | Description |
---|---|---|
name | String Value for the HTML name attribute. | |
id | String Value for the HTML id attribute. | |
class | String CSS classes to include in the input's HTML | |
classes | Array CSS classes to include in the input's HTML | |
caption | String A string describing the field and what sorts of input it expects. Displayed below the input. | |
label | String Label text displayed above the input. | |
visually_hide_label | Boolean When set to | |
disabled | Boolean When set to | |
hidden | Boolean When set to | |
invalid | Boolean If set to | |
validation_message | String A string displayed between the caption and the input indicating the input's contents are invalid. This option is, by default, set to the first Rails validation message for the input (assuming the form is associated with a model object). Use | |
label_arguments | Hash Attributes that will be passed to Rails' | |
scope_name_to_model | Boolean Default | |
scope_id_to_model | Boolean Default | |
required | Boolean Default | |
aria | Hash Key/value pairs that represent Aria attributes and their values. Eg. | |
data | Hash Key/value pairs that represent data attributes and their values. Eg. | |
system_arguments | Hash A hash of attributes passed to the underlying Rails builder methods. These options may mean something special depending on the type of input, otherwise they are emitted as HTML attributes. See the Rails documentation for more information. In addition, the usual Primer utility arguments are accepted in system arguments. For example, passing |