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

如何在用户点击Default单选按钮时重置Shiny的numericInput值

解决Shiny应用默认值自动重置问题

要实现切换回「Default」选项时自动重置输入框为默认值,只需在监听adv.sel变化的observeEvent中添加重置逻辑即可,具体修改如下:

  1. 在「Default」分支中,除禁用输入框外,调用updateNumericInput重置两个输入框的默认值
  2. 保留「Custom」分支的启用逻辑不变

修改后的完整代码:

library(shiny)
library(shinydashboard)
library(shinyjs)

opts.adv <- c("Default","Custom")

ui <- dashboardPage(skin = "blue",
  dashboardHeader(title = "生存分析",titleWidth = 450),
  dashboardSidebar(id="",
             sidebarMenu(id = "tabs",
                 menuItem("生存分析",tabName = "menuSurvival", icon = shiny::icon("skull-crossbones")),
                 actionButton("btnQuit","退出",icon = shiny::icon("xmark"),class="btn-lg btn-danger"))),
  dashboardBody(
    useShinyjs(),
     tabItems(
         tabItem(tabName = "menuSurvival",
                    fluidRow(column(4,style="width:25%;",
                                    box(title="生存参数",status="primary",solidHeader=TRUE,width=NULL,
                                        radioButtons("adv.sel","生存选项",opts.adv),
                                        numericInput("mu.custom","均值(默认=0.1)",0.1,min=0,max=2,step=0.01),
                                        numericInput("var.custom","方差(默认=0.05)",0.05,min=0,max=0.5,step=0.01)))))
)))

server <- function(input, output, session) {

  observeEvent(input$adv.sel, {
    if (input$adv.sel == "Default") {
      shinyjs::disable(id = "mu.custom")
      shinyjs::disable(id = "var.custom")
      # 重置输入框为默认值
      updateNumericInput(session, "mu.custom", value = 0.1)
      updateNumericInput(session, "var.custom", value = 0.05)
    } else {
      shinyjs::enable(id = "mu.custom")
      shinyjs::enable(id = "var.custom")
    }
  })

  observeEvent(input$btnQuit, {
    stopApp()
  })

}

shinyApp(ui, server)

关键修改说明

  • 切换到「Default」时,通过updateNumericInput直接修改输入框的value参数,完成默认值重置
  • 保留原禁用逻辑,确保默认模式下输入框不可编辑
  • 同步将UI中的英文文本翻译为中文,适配中文使用场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 20:19:52