r-文本输入和闪烁的数据表中的复选框

时间:2018-03-24 23:05:00

标签: javascript r shiny

我想使用ShinyR应用程序收集一些数据,如果有人选择其他,则包含texinput选项。是否可以在使用javascript构建的数据表中为ShinyR应用程序包含文本输入?

示例表:



library(shiny)
library(DT)


answer_options<- c("reading", "swimming",
     "cooking", "hiking","binge- watching series",
     "other") 

question2<- "What hobbies do you have?"

shinyApp(
  ui = fluidPage(
    h2("Questions"),
    p("PLease answer the question below. "),
    
    
    DT::dataTableOutput('checkbox_matrix'),
    tags$script(HTML("Shiny.addCustomMessageHandler('unbind-DT', function(id) {
          Shiny.unbindAll($('checkbox_matrix'+id).find('table').DataTable().table().node());
        })")
                )
  ),
  
  
  server = function(input, output, session) {
    
      checkbox_m = matrix(
        as.character(answer_options), nrow = length(answer_options), ncol = length(question2), byrow = TRUE,
        dimnames = list(answer_options, question2)
      )
      
      for (i in seq_len(nrow(checkbox_m))) {
        checkbox_m[i, ] = sprintf(
          '<input type="checkbox" name="%s" value="%s"/>',
          answer_options[i], checkbox_m[i, ]
        )
      }
      checkbox_m
  output$checkbox_matrix= DT::renderDataTable(
    checkbox_m, escape = FALSE, selection = 'none', server = TRUE, 
    options = list(dom = 't', paging = FALSE, ordering = FALSE),
    callback = JS("table.on('click.dt', 'td', function() {
            var row_=table.cell(this).index().row;
            var col=table.cell(this).index().column;
            var data = [row_, col];
            Shiny.onInputChange('rows',data );
    });")
    )
    }
    )
&#13;
&#13;
&#13;

0 个答案:

没有答案