45

ShinyUI 要素に対して無効化/有効化機能を実装する方法を探しています。ここで xiaodaighは、an を無効/有効にする方法のヒントを提供しますactionButton(下の画像を参照numericInput)。

(私はconditionalPanel機能を知っていますが、これは私が望む効果ではありません。)

特に私はあまり詳しくないので、何か提案をいただければ幸いですJavaScript

ここに画像の説明を入力

4

3 に答える 3

61

質問でリンクしているコードが他の入力ウィジェットで機能しない理由は、入力ウィジェットが異なれば、無効にするために異なる JavaScript 呼び出しが必要になるためです。もう 1 つの問題は、shiny が入力要素を作成するときに、指定した ID が実際の HTML 入力タグの ID である場合があり、その ID が入力タグのコンテナーに与えられる場合があることです。

Shinyjsパッケージには、任意の光沢のある入力でそのまま機能する機能disableがあります。免責事項: 私はそのパッケージを書きました。

numericInputあなたが尋ねたように無効にする方法は次のとおりです

library(shiny)
runApp(shinyApp(
  ui = fluidPage(
    shinyjs::useShinyjs(),
    numericInput("test", "Test", 5),
    actionButton("submit", "Choose")
  ),
  server = function(input, output, session) {
    observeEvent(input$submit, {
      shinyjs::disable("test")
    })
  }
))
于 2015-05-24T08:04:06.860 に答える
5

特定の条件が FALSE のときに要素が「消える」場合はどうでしょうか。

これがあなたの意図である場合は、これをサーバーに追加できます.R

output$sliderInputUI <- renderUI({
    if (condition == TRUE) {
        sliderInput("id", "text", 
             min = 1, max = 8, 
             value = 1, step = 1
        )
    }
})

これを ui.R htmlOutput("sliderInputUI") に追加します

sliderInput条件がTRUEの場合にのみUIに表示されます。

于 2014-06-03T17:11:28.370 に答える