
Launch a popup with a text input
inputSweetAlert(
session = getDefaultReactiveDomain(),
inputId,
title = NULL,
text = NULL,
type = NULL,
input = c("text", "password", "textarea", "radio", "checkbox", "select", "email",
"url"),
inputOptions = NULL,
inputPlaceholder = NULL,
inputValidator = NULL,
btn_labels = "Ok",
btn_colors = NULL,
reset_input = TRUE,
...
)
The session
object passed to function given to shinyServer.
The input
slot that will be used to access the value.
If in a Shiny module, it use same logic than inputs : use namespace in UI, not in server.
Title of the pop-up.
Text of the pop-up.
Type of the pop-up : "info"
, "success"
,
"warning"
, "error"
or "question"
.
Type of input, possible values are : "text"
,
"password"
,"textarea"
, "radio"
, "checkbox"
or "select"
.
Options for the input. For "radio"
and "select"
it will be choices.
Placeholder for the input, use it for "text"
or "checkbox"
.
JavaScript function to validate input. Must be a character wrapped in I()
.
Label(s) for button(s).
Color(s) for button(s).
Set the input value to NULL
when alert is displayed.
Other arguments passed to JavaScript method.
sendSweetAlert()
, confirmSweetAlert()
,
closeSweetAlert()
.
# Input in alert ----
library(shiny)
library(shinyWidgets)
ui <- fluidPage(
tags$h1("Input sweet alert"),
actionButton("btn_text", "Text Input"),
verbatimTextOutput(outputId = "text"),
actionButton("btn_password", "Password Input"),
verbatimTextOutput(outputId = "password"),
actionButton("btn_radio", "Radio Input"),
verbatimTextOutput(outputId = "radio"),
actionButton("btn_checkbox", "Checkbox Input"),
verbatimTextOutput(outputId = "checkbox"),
actionButton("btn_select", "Select Input"),
verbatimTextOutput(outputId = "select"),
actionButton("btn_email", "Email Input"),
verbatimTextOutput(outputId = "email")
)
server <- function(input, output, session) {
observeEvent(input$btn_text, {
inputSweetAlert(
session = session,
"mytext",
input = "text",
title = "What's your name ?",
inputPlaceholder = "e.g.: Victor",
allowOutsideClick = FALSE,
showCloseButton = TRUE
)
})
output$text <- renderPrint(input$mytext)
observeEvent(input$btn_password, {
inputSweetAlert(
session = session,
"mypassword",
input = "password",
title = "What's your password ?"
)
})
output$password <- renderPrint(input$mypassword)
observeEvent(input$btn_radio, {
inputSweetAlert(
session = session,
"myradio",
input = "radio",
inputOptions = c("Banana" , "Orange", "Apple"),
title = "What's your favorite fruit ?",
inputValidator = I(
"function(value) {
if (!value) {
return 'You need to choose something!';
}
}"
)
)
})
output$radio <- renderPrint(input$myradio)
observeEvent(input$btn_checkbox, {
inputSweetAlert(
session = session,
"mycheckbox",
input = "checkbox",
inputPlaceholder = "Yes I agree",
title = "Do you agree ?"
)
})
output$checkbox <- renderPrint(input$mycheckbox)
observeEvent(input$btn_select, {
inputSweetAlert(
session = session,
"myselect",
input = "select",
inputOptions = c("Banana" , "Orange", "Apple"),
title = "What's your favorite fruit ?"
)
})
output$select <- renderPrint(input$myselect)
observeEvent(input$btn_email, {
inputSweetAlert(
session = session,
inputId = "myemail",
input = "email",
title = "What's your email ?",
validationMessage= "this does not look like a valid email!"
)
})
output$email <- renderPrint(input$myemail)
}
if (interactive())
shinyApp(ui = ui, server = server)
Run the code above in your browser using DataLab