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

如何让selectizeInput点击或输入时选项顺序保持一致?

解决Shiny中selectizeInput搜索时选项顺序改变的问题

默认情况下,Shiny的selectizeInput组件在输入搜索内容后,会根据匹配度对选项重新排序,导致展示顺序和初始choices向量的顺序不一致。要让选项始终保持固定的初始顺序,只需在组件的options参数中添加排序规则配置。

修改后的完整代码如下:

library(shiny)

choices <- c("First choice", "Second choice", "Choice third", "Fourth choice", "Choice fifth")

ui <- fluidPage(
    selectizeInput("id", 
                   "My input", 
                   choices = choices,
                   multiple = TRUE,
                   options = list(
                       placeholder = "All choices",
                       # 强制按选项初始顺序排序
                       sortField = list(list(field = "$order"))
                   )
    )
)

server <- function(input, output) {
}

shinyApp(ui = ui, server = server)

原理说明

selectize组件会自动为每个初始选项添加一个$order属性,该属性对应选项在原始choices向量中的位置序号。通过设置sortField = list(list(field = "$order")),可以强制selectize始终按照这个初始序号排序,无论输入什么搜索内容,选项顺序都和初始向量保持一致。

内容的提问来源于stack exchange,提问作者kileuskas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 06:52:05