Display a form submit button.

When this button is clicked, all widget values inside the form will be sent from the user's browser to your Streamlit server in a batch.

Every form must have at least one st.form_submit_button. An st.form_submit_button cannot exist outside of a form.

For more information about forms, check out our docs.

Function signature[source]

st.form_submit_button(label="Submit", help=None, on_click=None, args=None, kwargs=None, *, type="secondary", icon=None, disabled=False, use_container_width=False)

Parameters

label (str)

A short label explaining to the user what this button is for. Defaults to "Submit".

help (str or None)

A tooltip that gets displayed when the button is hovered over. Defaults to None.

on_click (callable)

An optional callback invoked when this button is clicked.

args (tuple)

An optional tuple of args to pass to the callback.

kwargs (dict)

An optional dict of kwargs to pass to the callback.

type ("primary", "secondary", or "tertiary")

An optional string that specifies the button type. This can be one of the following:

  • "primary": The button's background is the app's primary color for additional emphasis.
  • "secondary" (default): The button's background coordinates with the app's background color for normal emphasis.
  • "tertiary": The button is plain text without a border or background for subtly.

icon (str or None)

An optional emoji or icon to display next to the button label. If icon is None (default), no icon is displayed. If icon is a string, the following options are valid:

  • A single-character emoji. For example, you can set icon="🚨" or icon="🔥". Emoji short codes are not supported.

  • An icon from the Material Symbols library (rounded style) in the format ":material/icon_name:" where "icon_name" is the name of the icon in snake case.

    For example, icon=":material/thumb_up:" will display the Thumb Up icon. Find additional icons in the Material Symbols font library.

disabled (bool)

Whether to disable the button. If this is False (default), the user can interact with the button. If this is True, the button is grayed-out and can't be clicked.

If the first st.form_submit_button in the form is disabled, the form will override submission behavior with enter_to_submit=False.

use_container_width (bool)

Whether to expand the button's width to fill its parent container. If use_container_width is False (default), Streamlit sizes the button to fit its contents. If use_container_width is True, the width of the button matches its parent container.

In both cases, if the contents of the button are wider than the parent container, the contents will line wrap.

Returns

(bool)

True if the button was clicked.

forum

Still have questions?

Our forums are full of helpful information and Streamlit experts.