【问题标题】:Update selectInput on change of another selectInput在另一个 selectInput 更改时更新 selectInput
【发布时间】:2013-10-01 18:30:25
【问题描述】:

每当另一个具有不同输入 ID 的 selectInput 的值发生变化时,我需要更改一个 selectInput 的值及其自己的输入 ID。

在 javascript 中,这将是 onchage,但我不知道如何连接两者。

jQueryR 代码都可以。

编辑: 让它与这段代码一起工作:

observe({ 
    choices <- input$product
    updateSelectInput(session, "productexperiance", 
                        choices=c("NA", paste(ProductList())), selected="NA")
  })

我仍然不明白它为什么会起作用。

【问题讨论】:

    标签: javascript r shiny


    【解决方案1】:

    使用observeupdateSelectInput。假设一个 selectInput 称为 col,另一个称为 value:

    observe({
        choices <- values[input$col]
        updateSelectInput(session, "value", choices=choices)
    })
    

    观察者的第一行只是代表您想要使用的任何逻辑来决定第二个selectInput 的选择。 values 只是一个假设的向量或包含一些数据的列表。

    重要的是你访问了观察者内部第一个selectInput的值;这将导致观察者在该值更改时重新执行。

    【讨论】:

    • 乔,我不太明白; values 不是函数或输入。另外,我不想将 input1 更改为 = input2;每当 input1 发生变化时,我想让 input2 恢复为 NA
    • 实际上,我使用观察者让它工作了!但我仍然不明白为什么它有效?编辑:将代码移至我自己的帖子
    • 抱歉不清楚,观察者的第一行只是代表您想要使用的任何逻辑来决定第二个 selectInput 的选择。 values 只是一个包含一些数据的假设向量或列表。重要的是您访问观察者内部的第一个 selectInput 的值;这将导致观察者在该值更改时重新执行。
    【解决方案2】:

    使用 JQuery(您必须加载 JQuery 脚本才能使用它)

    $('#select1').change(function(){ 
        $('#select2').val('1');
    });
    

    你得试一试...(未测试)

    # 表示元素的 ID - 实际 ID 可以是任何东西(除了 select1 或 select2)

    在我的示例中,当 select1 更改时,select2 也会随之更改。

    val() 中的“1”应对应于可通过其他列表获得的实际值。

    【讨论】:

      猜你喜欢
      • 2016-10-18
      • 2022-01-15
      • 2016-04-28
      • 1970-01-01
      • 2017-10-19
      • 1970-01-01
      • 2018-07-09
      • 2016-01-10
      • 1970-01-01
      相关资源
      最近更新 更多