繁体   English   中英

R Shiny - 从 fileInput 获取占位符值

[英]R Shiny - Get placeholder value from fileInput

我可以使用以下代码将占位符值读取为弹出警报:

library(shiny)
library(shinyjs)

jscode_upload_txt <- " Shiny.addCustomMessageHandler('upload_txt', function(txt) {
  var target = $('#fileUpload').parent().parent().parent().find('input[type=text]');
  target.val(txt);
}); "

jscode_get_txt <- " Shiny.addCustomMessageHandler('get_txt', 
  function(message) {
    var target = $('#fileUpload').parent().parent().parent().find('input[type=text]');
    alert(JSON.stringify(target.val()));
  }
); "

ui <- fluidPage( 
  tags$script(HTML(jscode_upload_txt)),
  tags$script(HTML(jscode_get_txt)),
  fileInput("fileUpload",  "File to upload", placeholder = "Initial Text") 
)

server <- function(input, output, session ) {
  showLog()
  observe({
    session$sendCustomMessage("upload_txt", "SOME OTHER TEXT")
    session$sendCustomMessage("get_txt" , "")
  })
}

shinyApp(ui = ui, server = server)

如何在 R 中直接阅读(并与之交互)? 我尝试logjs而不是alert ,但没有显示任何内容。

你可以做

jscode_get_txt <- " Shiny.addCustomMessageHandler('get_txt', 
  function(message) {
    var target = $('#fileUpload').parent().parent().parent().find('input[type=text]');
    Shiny.setInputValue('placeholder', target.val());
  }
); "

然后占位符在input$placeholder中可用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM