Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

updateSwitchInput

Change the value of a switch input on the client


Description

Change the value of a switch input on the client

Usage

updateSwitchInput(
  session,
  inputId,
  value = NULL,
  label = NULL,
  onLabel = NULL,
  offLabel = NULL,
  onStatus = NULL,
  offStatus = NULL,
  disabled = NULL
)

Arguments

session

The session object passed to function given to shinyServer.

inputId

The id of the input object.

value

The value to set for the input object.

label

The label to set for the input object.

onLabel

The onLabel to set for the input object.

offLabel

The offLabel to set for the input object.

onStatus

The onStatus to set for the input object.

offStatus

The offStatus to set for the input object.

disabled

Logical, disable state.

See Also

Examples

if (interactive()) {
  library("shiny")
  library("shinyWidgets")


  ui <- fluidPage(
    tags$h1("Update", tags$code("switchInput")),
    br(),
    fluidRow(
      column(
        width = 4,
        panel(
          switchInput(inputId = "switch1"),
          verbatimTextOutput(outputId = "resup1"),
          tags$div(
            class = "btn-group",
            actionButton(
              inputId = "updatevaluetrue",
              label = "Set to TRUE"
            ),
            actionButton(
              inputId = "updatevaluefalse",
              label = "Set to FALSE"
            )
          ),
          heading = "Update value"
        )
      ),

      column(
        width = 4,
        panel(
          switchInput(inputId = "switch2",
                      label = "My label"),
          verbatimTextOutput(outputId = "resup2"),
          textInput(inputId = "updatelabeltext",
                    label = "Update label:"),
          heading = "Update label"
        )
      ),

      column(
        width = 4,
        panel(
          switchInput(
            inputId = "switch3",
            onLabel = "Yeaah",
            offLabel = "Noooo"
          ),
          verbatimTextOutput(outputId = "resup3"),
          fluidRow(column(
            width = 6,
            textInput(inputId = "updateonLabel",
                      label = "Update onLabel:")
          ),
          column(
            width = 6,
            textInput(inputId = "updateoffLabel",
                      label = "Update offLabel:")
          )),
          heading = "Update onLabel & offLabel"
        )
      )
    ),

    fluidRow(column(
      width = 4,
      panel(
        switchInput(inputId = "switch4"),
        verbatimTextOutput(outputId = "resup4"),
        fluidRow(
          column(
            width = 6,
            pickerInput(
              inputId = "updateonStatus",
              label = "Update onStatus:",
              choices = c("default", "primary", "success",
                          "info", "warning", "danger")
            )
          ),
          column(
            width = 6,
            pickerInput(
              inputId = "updateoffStatus",
              label = "Update offStatus:",
              choices = c("default", "primary", "success",
                          "info", "warning", "danger")
            )
          )
        ),
        heading = "Update onStatus & offStatusr"
      )
    ),

    column(
      width = 4,
      panel(
        switchInput(inputId = "switch5"),
        verbatimTextOutput(outputId = "resup5"),
        checkboxInput(
          inputId = "disabled",
          label = "Disabled",
          value = FALSE
        ),
        heading = "Disabled"
      )
    ))

  )

  server <- function(input, output, session) {
    # Update value
    observeEvent(input$updatevaluetrue, {
      updateSwitchInput(session = session,
                        inputId = "switch1",
                        value = TRUE)
    })
    observeEvent(input$updatevaluefalse, {
      updateSwitchInput(session = session,
                        inputId = "switch1",
                        value = FALSE)
    })
    output$resup1 <- renderPrint({
      input$switch1
    })


    # Update label
    observeEvent(input$updatelabeltext, {
      updateSwitchInput(
        session = session,
        inputId = "switch2",
        label = input$updatelabeltext
      )
    }, ignoreInit = TRUE)
    output$resup2 <- renderPrint({
      input$switch2
    })


    # Update onLabel & offLabel
    observeEvent(input$updateonLabel, {
      updateSwitchInput(
        session = session,
        inputId = "switch3",
        onLabel = input$updateonLabel
      )
    }, ignoreInit = TRUE)
    observeEvent(input$updateoffLabel, {
      updateSwitchInput(
        session = session,
        inputId = "switch3",
        offLabel = input$updateoffLabel
      )
    }, ignoreInit = TRUE)
    output$resup3 <- renderPrint({
      input$switch3
    })


    # Update onStatus & offStatus
    observeEvent(input$updateonStatus, {
      updateSwitchInput(
        session = session,
        inputId = "switch4",
        onStatus = input$updateonStatus
      )
    }, ignoreInit = TRUE)
    observeEvent(input$updateoffStatus, {
      updateSwitchInput(
        session = session,
        inputId = "switch4",
        offStatus = input$updateoffStatus
      )
    }, ignoreInit = TRUE)
    output$resup4 <- renderPrint({
      input$switch4
    })


    # Disabled
    observeEvent(input$disabled, {
      updateSwitchInput(
        session = session,
        inputId = "switch5",
        disabled = input$disabled
      )
    }, ignoreInit = TRUE)
    output$resup5 <- renderPrint({
      input$switch5
    })

  }

  shinyApp(ui = ui, server = server)

}

shinyWidgets

Custom Inputs Widgets for Shiny

v0.6.0
GPL-3
Authors
Victor Perrier [aut, cre, cph], Fanny Meyer [aut], David Granjon [aut], Ian Fellows [ctb] (Methods for mutating vertical tabs & updateMultiInput), Wil Davis [ctb] (numericRangeInput function), Spencer Matthews [ctb] (autoNumeric methods), JavaScript and CSS libraries authors [ctb, cph] (All authors are listed in LICENSE.md)
Initial release

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.