如何为toggleState添加条件?

时间:2016-08-02 01:21:49

标签: r shiny

我正在尝试有条件地更改confirm按钮的状态,并且我希望只要length(input$id)>2禁用它(但我可能决定稍后添加多个条件)。< / p>

我做了几次尝试,如果你能就他们不能正常工作的原因提供一些反馈,我将不胜感激。

首先, ui.R 对所有尝试都是不变的:

library(shinyjs)
    shinyUI(fluidPage(
          useShinyjs(),           
          fluidRow(
            column(5, offset = 3,
                   titlePanel("Consent form"),
                   consentForm
            )),    
          fluidRow(
            column(6, offset = 4,
                   div(
                     textInput(   "id",  "LSU ID", ""),
                     textInput(   "age",     "Age", ""),
                     selectInput( "gender",  "Select your gender", c("", "Male", "Female")),
                     actionButton("confirm", "Submit", class='btn-primary')
                   ))
          )
        ))

第一台服务器.R

shinyServer(function(input, output) {

  observe({
    toggleState("confirm", condition = length(input$id)>2)
  })

})

第二台服务器.R

这里的问题可能来自于我对术语&#34;无效&#34;的误解。实际上observeEvent的第二个元素是

  

每当eventExpr失效时调用的表达式。

我认为&#34;无效&#34;意味着&#34;评估为FALSE&#34;,但显然不是。有谁能证实吗?

shinyServer(function(input, output) {

  observeEvent(length(input$id)>2, {
    toggleState("confirm")
  })
 })

第3次尝试

shinyServer(function(input, output) {

  observeEvent(input$id, {
    if (length(input$id)>2) {
    enable("confirm")
    } else {
      disable('confirm')
    }
  })
 })

0 个答案:

没有答案