2017-10-23 12 views
1

ユーザーが「検索」アクションボタンをクリックしたときにtextInputのクエリが行われる光沢のあるアプリを構築しています。 textInputボックスが空の場合は、そのボタンを無効にしてください。ここではshinyjs::toggleState()を使用していますが、テキストボックスが空であることを確認するためにはどのロジックを適用する必要があるかわかりません。下の私の再現可能なファイルで、私が置いた論理はis.null(input$query)です。私もis.na(input$query)length(input$query) == 0、およびinput$query == ''で試してみましたが、すべて成功していませんでした。このような何かを行うShiny 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) 
+3

使用 'toggleState(、入力$クエリを "検索"= "" | is.null(入力$ query)) ' – Sagar

答えて

1

はここapp.rファイルですか?

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)) 
}) 
+0

です。ありがとう! – Phil

関連する問題