【问题标题】:Disable action button when textinput is empty in Shiny app [R]当 Shiny 应用程序中的文本输入为空时禁用操作按钮 [R]
【发布时间】:2018-04-04 02:29:52
【问题描述】:

我正在构建一个闪亮的应用程序,当用户单击“搜索”操作按钮时,会在其中进行来自 textInput 的查询。如果textInput 框为空,我希望禁用该按钮。我在这里使用shinyjs::toggleState(),但我无法弄清楚它需要应用什么逻辑才能看到文本框为空。在下面的可重现文件中,我放置的逻辑是is.null(input$query)。我也试过is.na(input$query)length(input$query) == 0input$query == '',都没有成功我应该放什么?

这是 app.r 文件:

library(shiny)
library(shinyjs)

ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      useShinyjs(),
      textInput(inputId = "query", label = "Enter query:", value = ""),
      actionButton(inputId = "search", label = "Search", icon = icon("search"))
    ),
    mainPanel()
  )
)

server <- function(input, output) {
  observe({
    toggleState("search", !is.null(input$query))
  })
}

shinyApp(ui = ui, server = server)

【问题讨论】:

  • 使用toggleState("search", input$query != "" | is.null(input$query))

标签: r shiny shinyjs


【解决方案1】:

这样的事情吗?

 observe({
    if(is.null(input$query) || input$query == ""){
      disable("search")
    }
    else{
      enable("search")
    }
  })

根据@Sagar,您也可以这样做:

observe({
  toggleState("search", input$query != "" | is.null(input$query))
})

observeEvent(input$query,{
  toggleState("search", input$query != "" | is.null(input$query))
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-10
    • 2019-03-24
    • 2015-11-26
    • 1970-01-01
    • 2021-08-12
    • 1970-01-01
    • 2023-01-09
    • 1970-01-01
    相关资源
    最近更新 更多