Description Usage Arguments Details Frozen inputs with scope See Also Examples
Form inputs are a new reactive input. Form inputs are an alternative to shiny's submit buttons. A form input is comprised of any number of inputs. The value of these inputs will not change until a form submit button within the form input is clicked. A form input's reactive value depends on the clicked form submit button. This allows you to distinguish between different form submission types, think "login" versus "register".
A form submit button, formSubmit(), is a special type of button used to
control form input submission. A form input and its child reactive inputs
will never update if a form submit button is not included in ... passed
to formInput().
1 2 3 4 5 | formInput(id, ..., inline = FALSE)
formSubmit(label, value = label, ...)
updateFormInput(id, submit = FALSE, session = getDefaultReactiveDomain())
|
id |
A character string specifying the id of the reactive input. |
... |
Any number of unnamed arguments passed as child elements to the
parent form element or named arguments passed as HTML attributes to the
parent element. At least one |
inline |
One of |
label |
A character string specifying the label of the form submit button. |
value |
A character string specifying the value of the form submit
button and the value of the form input when the button is clicked,
defaults to |
submit |
One of |
session |
A reactive context, defaults to |
When inline is TRUE you may want to adjust the right margin of each child
element for viewports larger than mobile, margin(<TAG>, right = c(sm = 2)),
see margin(). You only need to apply extra space for larger viewports
because inline forms do not take effect on small viewports.
Use updateFormInput() to submit a form input. This will cause all the form's
child inputs to update.
ui <- container(
formInput(
id = "login",
formGroup(
label = "Username",
textInput(
id = "user"
)
),
formGroup(
label = "Password",
textInput(
type = "password",
id = "pass"
)
),
formSubmit(
label = "Login",
value = "login"
)
)
)
server <- function(input, output) {
# Will not react until the form submit button is
# clicked.
observe({
print(input$email)
print(input$password)
})
}
shinyApp(ui, server)
Other inputs:
buttonGroupInput(),
buttonInput(),
checkbarInput(),
checkboxInput(),
chipInput(),
fileInput(),
listGroupInput(),
menuInput(),
navInput(),
radioInput(),
radiobarInput(),
rangeInput(),
selectInput(),
textInput()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | ### A simple form
card(
header = "Please pick a flavor",
formInput(
id = "form1",
formGroup(
label = "Ice creams",
radioInput(
id = "flavor",
choices = c("Mint", "Moose tracks", "Marble"),
)
),
formSubmit("Make choice", "choice") %>%
background("teal")
)
) %>%
border("teal") %>%
width(50)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.