2013-09-26 28 views
3

只要另一个selectInput的值与另一个输入ID发生更改,我需要使用其自己的输入ID更改一个selectInput的值。更新selectInput对另一个selectInput的更改

在JavaScript中这将是onchage,但我无法弄清楚如何连接两者。

jQueryR代码是确定的。

编辑:得到它与此代码的工作:

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

不过我不明白为什么它的工作原理。

回答

4

使用observeupdateSelectInput。假设一个selectInput叫山口和另一个名为值:

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

观察者的第一行只是站在你想使用决定什么样的选择是第二selectInput任何逻辑。值只是包含一些数据的假设向量或列表。

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

+0

乔,我不太明白;值不是一个函数或输入。 此外,我不想将input1更改为= input2; 我想让输入2恢复到NA,只要输入有变化1 – JayCo

+0

实际上,我使用观察者得到它! 但我仍不明白_why_它的工作? 编辑:移动代码到我自己的帖子 – JayCo

+2

对不起,不清楚,观察员的第一行是刚刚站在你想用什么逻辑来决定什么是第二个selectInput的选择。 'values'只是一个包含一些数据的假设向量或列表。重要的是,您可以访问观察者中第一个selectInput的值;这将导致观察者在该值发生变化时重新执行。 –

1

使用jQuery(你必须有jQuery脚本加载使用它)

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

你必须发挥它有点...(未测试)

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

在我的示例中select1更改时,select2也将被更改。

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