Skip to main content

Money field

The money field component collects monetary values from customers with built-in currency formatting and validation. Use money field for prices, costs, or financial amounts to provide proper currency symbols, decimal handling, and numeric validation.

Money fields support automatic formatting and min/max constraints to ensure customers enter valid monetary values. For non-currency numeric input, use number field.

Support
Targets (24)

Configure the following properties on the money field component.

Anchor to autocomplete
autocomplete
AutocompleteField | `${} ${AutocompleteField}` | `${} ${AutocompleteField}` | `${} ${} ${AutocompleteField}` | "on" | "off"
Default: 'on'

A hint about the intended content of the field for browser autofill.

When set to on (the default), this property indicates that the field should support autofill, but you do not have any more semantic information on the intended contents.

When set to off, you are indicating that this field contains sensitive information, or contents that are never saved, like one-time codes.

Alternatively, you can provide value which describes the specific data you would like to be entered into this field during autofill.

Learn more about the set of autocomplete values supported in browsers.

Anchor to defaultValue
defaultValue
string

The initial value of the field when it first loads. Unlike placeholder, this is a real value that the user can edit and that gets submitted with the form. Once the user starts typing, their input replaces this value.

Anchor to disabled
disabled
boolean
Default: false

Whether the field is disabled, preventing any user interaction.

Anchor to error
error
string

An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.

string

A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.

Anchor to label
label
string

The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.

Anchor to labelAccessibilityVisibility
labelAccessibilityVisibility
'visible' | 'exclusive'
Default: 'visible'

Controls whether the label is visible to all users or only to screen readers.

  • visible: The label is shown to everyone.
  • exclusive: The label is visually hidden but still announced by screen readers.
number
Default: Infinity

The highest decimal or integer to be accepted for the field. When used with step the value will round down to the max number.

Note: a user can still use the keyboard to input a number higher than the max. It's up to the developer to add appropriate validation.

number
Default: -Infinity

The lowest decimal or integer to be accepted for the field. When used with step the value will round up to the min number.

Note: a user can still use the keyboard to input a number lower than the min. It's up to the developer to add appropriate validation.

string

The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.

Anchor to readOnly
readOnly
boolean
Default: false

Whether the field is read-only and can't be edited. Read-only fields remain focusable and their content is announced by screen readers.

Anchor to required
required
boolean
Default: false

Whether the field needs a value. This requirement adds semantic value to the field, but it will not cause an error to appear automatically. If you want to present an error when this field is empty, you can do so with the error property.

number
Default: 1

The amount the value can increase or decrease by. This can be an integer or decimal. If a max or min is specified with step when increasing/decreasing the value via the buttons, the final value will always round to the max or min rather than the closest valid amount.

Anchor to value
value
string

The current value for the field. If omitted, the field will be empty.

The money field component provides event callbacks for handling user interactions. Learn more about handling events.

<typeof tagName>

A callback fired when the money field loses focus.

Learn more about the blur event.

Anchor to change
change
<typeof tagName>

A callback fired when the money field value changes.

Learn more about the change event.

Anchor to focus
focus
<typeof tagName>

A callback fired when the money field receives focus.

Learn more about the focus event.

Anchor to input
input
<typeof tagName>

A callback fired when the user inputs data into the money field.

Learn more about the input event.


Anchor to Collect a currency valueCollect a currency value

Display a money input for collecting prices or amounts. This example shows a money field with a label and a defaultValue.

Collect a currency value

A currency input field labeled Price showing a dollar sign prefix and the value 9.99.

html

<s-money-field label="Price" defaultValue="9.99"></s-money-field>

Anchor to Set value constraintsSet value constraints

Limit input to a valid range with minimum and maximum bounds. This example configures a money field with min and max constraints and a pre-filled value.

html

<s-money-field
label="Donation amount"
value="10.00"
min="1"
max="500"
></s-money-field>

Anchor to Show a validation errorShow a validation error

Display an error message when the entered value is invalid. This example shows a required money field with an error message.

html

<s-money-field
label="Refund amount"
min="0.01"
error="Refund amount is required"
></s-money-field>

  • Use step increments: Set a step value to guide customers toward valid amounts, such as 0.50 for half-dollar increments.
  • Constrain ranges: Use min and max to prevent unreasonable values, such as negative amounts or excessively high tips.
  • Label with context: Write labels that describe the purpose, such as "Price" or "Donation," not just "Amount."

Was this page helpful?