R-上传后更改文本文件输入

R-上传后更改文本文件输入,r,shiny,customization,shinyjs,R,Shiny,Customization,Shinyjs,我想在上传文件后更改fileInput中的占位符,即自定义写入的文件名 我发现了如何定制进度条标签,所以我猜代码应该非常类似。这就是我迄今为止所尝试的: library(shiny) library(shinyjs) jscode_upload_msg <- " Shiny.addCustomMessageHandler('upload_msg', function(msg) { var target = $('#fileUpload_progress').children

我想在上传文件后更改fileInput中的占位符,即自定义写入的文件名

我发现了如何定制进度条标签,所以我猜代码应该非常类似。这就是我迄今为止所尝试的:

library(shiny)
library(shinyjs)

jscode_upload_msg <- " Shiny.addCustomMessageHandler('upload_msg', function(msg) {
  var target = $('#fileUpload_progress').children()[0];
  target.innerHTML = msg;
}); "

jscode_upload_txt <- " Shiny.addCustomMessageHandler('upload_txt', function(txt) {
  var target = $('#fileUpload_header').children()[1].children()[0];
  target.innerHTML = txt;
}); "

ui <- fluidPage( 
  useShinyjs(),
  tags$script(jscode_upload_msg),
  tags$script(jscode_upload_txt),
  
  fileInput("fileUpload",  "File to upload") 
)

server <- function(input, output, session ) {
  observe({
    req(input$fileUpload)
    session$sendCustomMessage("upload_msg", "YOUR TEXT")
    session$sendCustomMessage("upload_txt", "SOME OTHER TEXT")
  })
}

shinyApp(ui = ui, server = server)
库(闪亮)
图书馆(shinyjs)
jscode_上传_msg
库(闪亮)

jscode_upload_msg谢谢,这非常有效。在寻找这个的同时,我还发现了如何随时更改占位符(不仅仅是在上传文件之后),唯一的区别是:
jscode\u upload\u txt
library(shiny)

jscode_upload_msg <- " Shiny.addCustomMessageHandler('upload_msg', function(msg) {
  var target = $('#fileUpload_progress').children()[0];
  target.innerHTML = msg;
}); "

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

ui <- fluidPage( 
  tags$script(HTML(jscode_upload_msg)),
  tags$script(HTML(jscode_upload_txt)),
  fileInput("fileUpload",  "File to upload") 
)

server <- function(input, output, session ) {
  observeEvent(input$fileUpload, {
    session$sendCustomMessage("upload_msg", "YOUR TEXT")
    session$sendCustomMessage("upload_txt", "SOME OTHER TEXT")
  })
}

shinyApp(ui = ui, server = server)