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

如何实现隐藏输入字段时自动清空对应输出值?

如何在Shiny中隐藏输入字段时自动清空对应输出值

需求场景:

  • 初始状态下文本标题(caption)字段为空且隐藏
  • 勾选「Show text caption field」复选框后显示字段,输入文本时输出字段同步显示内容
  • 取消勾选隐藏字段后,输出字段自动恢复为空

原代码的问题在于,隐藏输入字段后,input.caption()会保留之前输入的值,导致输出不会自动清空。下面是修正后的实现:

from shiny import App, Inputs, Outputs, Session, render, ui

app_ui = ui.page_fluid(
    ui.input_checkbox("show", "Show text caption field", False),
    ui.panel_conditional(
        "input.show", ui.input_text("caption", "Caption:"),
    ),
    ui.output_text_verbatim("value"),
)

def server(input: Inputs, output: Outputs, session: Session):
    @render.text
    def value():
        # 判断字段是否显示,未显示时返回空字符串
        if not input.show():
            return ""
        return input.caption()

app = App(app_ui, server)

逻辑说明

  • 当input.show()为False(即字段隐藏)时,直接返回空字符串,强制输出清空
  • 当input.show()为True(即字段显示)时,正常返回输入框的内容

这个实现简单直接,精准匹配需求场景,不需要额外的状态管理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 16:12:33