在更改另一个selectInput时更新selectInput

时间:2013-09-26 00:10:27

标签: javascript r shiny

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

在javascript中,这将是onchage,但我无法弄清楚如何将这两者联系起来。

jQuery R 代码没问题。

编辑:使用此代码:

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

我仍然不明白为什么会这样。

2 个答案:

答案 0 :(得分:4)

使用observeupdateSelectInput。假设一个名为col的selectInput和另一个名为value的值:

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

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

重要的是你访问观察者中第一个selectInput的值;这将导致观察者在该值发生变化时重新执行。

答案 1 :(得分:1)

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

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

你必须稍微玩一下......(未经测试)

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

在我的例子中,当select1被改变时,select2也会被改变。

val()中的'1'应该对应于另一个列表中可用的实际值。