---
title: "onSubmit(of:_:)"
framework: swiftui
role: symbol
role_heading: Instance Method
path: "swiftui/view/onsubmit(of:_:)"
---

# onSubmit(of:_:)

Adds an action to perform when the user submits a value to this view.

## Declaration

```swift
nonisolated func onSubmit(of triggers: SubmitTriggers = .text, _ action: @escaping () -> Void) -> some View

```

## Parameters

- `triggers`: The triggers that should invoke the provided action.
- `action`: The action to perform on submission of a value.

## Mentioned in

Managing search interface activation

## Discussion

Discussion Different views may have different triggers for the provided action. A TextField, or SecureField will trigger this action when the user hits the hardware or software return key. This modifier may also bind this action to a default action keyboard shortcut. You may set this action on an individual view or an entire view hierarchy. TextField("Username", text: $username)     .onSubmit {         guard viewModel.validate() else { return }         viewModel.login()     } You can use the submitScope(_:) modifier to stop a submit trigger from a control from propagating higher up in the view hierarchy to higher View.onSubmit(of:_:) modifiers. Form {     TextField("Username", text: $viewModel.userName)     SecureField("Password", text: $viewModel.password)

TextField("Tags", text: $viewModel.tags)         .submitScope() } .onSubmit {     guard viewModel.validate() else { return }     viewModel.login() } You can use different submit triggers to filter the types of triggers that should invoke the provided submission action. For example, you may provide a value of search to only hear submission triggers that originate from search fields vended by searchable modifiers. @StateObject private var viewModel = ViewModel()

NavigationView {     SidebarView()     DetailView() } .searchable(     text: $viewModel.searchText,     placement: .sidebar ) {     SuggestionsView() } .onSubmit(of: .search) {     viewModel.submitCurrentSearchQuery() }

## See Also

### Responding to submission events

- [submitScope(_:)](swiftui/view/submitscope(_:).md)
- [SubmitTriggers](swiftui/submittriggers.md)
