r
  • shiny
  • shinyjs
  • 2017-11-10 8 views 0 likes 
    0

    index.htmlのボタンで生成されたイベントをリスニングする正しい方法は何ですか?私は、入力フィールドではなく、ボタンで動作するようには思えないShiny.OnInputChange - R Shinyでボタンイベントを聴く

    observeEvent(input$.loginButton,{print("YEAH")}) 
    

    :server.Rで

    < button class='btn btn-primary btn-custom w-md waves-effect waves-light' id='.loginButton' style='width: 20%' type='button' onclick='myFucntion()'>Log In< /button> 
    
         <script type = 'text/javascript'> 
    function myFunction() { 
        document.getElementById('.loginButton').style.color = 'red'; 
    Shiny.onInputChange('.loginButton',1) 
    }</script> 
    

    :index.htmlをで 。

    +0

    「onclick'''はなぜですか? https://www.rdocumentation.org/packages/shinyjs/versions/0.1.0/topics/onclick – amrrs

    答えて

    0

    これは、Shiny.onInputChangeを使用する方法ではありません。以下は例です。あるいは、@ amrrsのコメントで提案されているように、shinyjsパッケージを使用することもできます。 JSコードの

    library(shiny) 
    
    jscode <- ' 
    $("#loginbutton").on("click", function(){ 
        Shiny.onInputChange("buttonClicked", Math.random()); 
    }) 
    ' 
    
    ui <- fluidPage(
        actionButton("loginbutton", "Login"), 
        singleton(tags$script(HTML(jscode))) 
    ) 
    
    server <- function(input, output){ 
        observeEvent(input$buttonClicked, { 
        print("YEAH") 
        }) 
    } 
    
    shinyApp(ui = ui, server = server) 
    

    説明:ボタンがクリックされたときに、input$buttonClickedが値Math.random()をとります。

    Shiny.onInputChangeの詳細については、https://deanattali.com/blog/advanced-shiny-tips/#message-javascript-rを参照してください。

    +0

    はい、そのアプローチが有効でした。私が問題を抱えていたのは、基本的に私がボタンから応答を得ていないということです。ボタンのクラスに_italic_ btn action-button _italic_を挿入して修正しました。 RはactionButtonの入力だけを受け入れると思われます:) – Mihov

    関連する問題