You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shiny多选输入实现重复选择选项的技术咨询

解决Shiny多选下拉可重复选择同一选项的问题

我太懂这个困扰了——明明开了hideSelected = FALSE让已选选项保持可见,但就是没法重复点击选择,想要生成像A,B,B,B,A,A,C这种带重复值的结果确实有点棘手。其实你说的没错,selectize.js本身就支持这个功能,只是这个配置项在文档里藏得比较深,我来给你直接上解决方案:

核心配置:启用allowDuplicates

在Shiny的selectizeInput里,只需要通过options参数传入selectize.js的allowDuplicates = TRUE配置,再配合hideSelected = FALSE,就能实现重复选择同一选项的需求。

完整示例代码

library(shiny)

ui <- fluidPage(
  selectizeInput(
    inputId = "repeat_select",
    label = "支持重复选择的多选下拉框",
    choices = c("A", "B", "C"),
    multiple = TRUE,
    options = list(
      allowDuplicates = TRUE,  # 关键:允许重复选项
      hideSelected = FALSE     # 让已选选项保持可见
    )
  ),
  # 实时展示选中的结果
  verbatimTextOutput("selected_result")
)

server <- function(input, output, session) {
  output$selected_result <- renderPrint({
    input$repeat_select
  })
}

shinyApp(ui, server)

效果说明

运行这个示例后,你可以反复点击同一个选项(比如连续点B三次),最终的输入值就会包含重复项,完全符合你需要的A,B,B,B,A,A,C这类格式。

补充说明

allowDuplicates是selectize.js的原生配置项,用于允许添加重复的条目到选中列表中。之前你没在文档里找到它可能是因为它没有被放在最显眼的位置,但确实是官方支持的功能,配合hideSelected = FALSE就能完美实现你的需求。

内容的提问来源于stack exchange,提问作者M.Dubel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:40:11