当 Shiny 应用程序中的文本输入为空时禁用操作按钮 [R]
Disable action button when textinput is empty in Shiny app [R]
我正在构建一个闪亮的应用程序,当用户单击 "search" 操作按钮时,会从 textInput
进行查询。如果 textInput
框为空,我希望禁用该按钮。我在这里使用 shinyjs::toggleState()
,但我无法弄清楚需要应用什么逻辑才能看到文本框为空。在我下面的可重现文件中,我设置的逻辑是 is.null(input$query)
。我也尝试过 is.na(input$query)
、length(input$query) == 0
和 input$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)
有这样的事情吗?
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))
})
我正在构建一个闪亮的应用程序,当用户单击 "search" 操作按钮时,会从 textInput
进行查询。如果 textInput
框为空,我希望禁用该按钮。我在这里使用 shinyjs::toggleState()
,但我无法弄清楚需要应用什么逻辑才能看到文本框为空。在我下面的可重现文件中,我设置的逻辑是 is.null(input$query)
。我也尝试过 is.na(input$query)
、length(input$query) == 0
和 input$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)
有这样的事情吗?
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))
})