2013-09-26 62 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'應該對應於通過另一個列表可用的實際值。