是否有一个带有“重置”按钮的闪亮 textInput 小部件?

Posted

技术标签:

【中文标题】是否有一个带有“重置”按钮的闪亮 textInput 小部件?【英文标题】:Is there a shiny textInput widget with a "reset" button incorporated? 【发布时间】:2020-06-16 20:07:42 【问题描述】:

我开发了一个在线闪亮应用程序,其中包含一个 textInput() 小部件,用于输入位置名称,并据此将用户重定向到地图上的该位置(通过 geocode 包利用 Google API 的功能)。

我想将我当前的textInput() 小部件更改为另一个包含“X”按钮的小部件,以自动删除用户插入的文本。请查看此image 以查看它的示例(“X”按钮标记为红色)。

您知道是否可以在闪亮的应用程序中进行操作?非常感谢。

【问题讨论】:

【参考方案1】:

试试这个:

library(shiny)

clearableTextInput <- function(inputId, label, value = "")
  el <- tags$div(
    tags$label(label, `for` = inputId),
    tags$span(
      class = "text-input-clearable",
      tags$input(id = inputId, type = "text", value = value),
      tags$span(title = "Clear", html("&times;"))
    )
  )
  js <- sprintf('
  var textInput = document.getElementById("%s");
  var clearBtn = textInput.nextElementSibling;
  textInput.onkeyup = function() 
    clearBtn.style.visibility = (this.value.length) ? "visible" : "hidden";
  ;
  clearBtn.onclick = function() 
    this.style.visibility = "hidden";
    textInput.value = "";
    Shiny.setInputValue("%s", "");
  ;
  ', inputId, inputId)
  tagList(el, singleton(tags$script(HTML(js))))


CSS <- "
.text-input-clearable 
  border:1px solid;
  padding:1px 6px 1px 1px;
  display:inline-block;

.text-input-clearable input 
  border:none;
  background:none;
  outline:none;
  padding:0 0;
  margin:0 0;
  font:inherit;

.text-input-clearable span 
  cursor:pointer;
  color:blue;
  font-weight:bold;
  visibility:hidden;

"

ui <- fluidPage(
  tags$head(
    tags$style(HTML(CSS))
  ),
  br(),
  clearableTextInput("txt", "Label"),
  br(),
  verbatimTextOutput("txt")
)

server <- function(input, output, session)

  output[["txt"]] <- renderPrint(
    input[["txt"]]
  )



shinyApp(ui, server)

【讨论】:

非常漂亮优雅的解决方案 Stéphane。一如既往的感谢。

以上是关于是否有一个带有“重置”按钮的闪亮 textInput 小部件?的主要内容,如果未能解决你的问题,请参考以下文章

在闪亮应用程序的 svg 文件中添加缩放重置按钮

R 带有单独悬停下拉选择的闪亮组按钮

如何根据带有闪亮元素的 R Markdown 文档中的条件禁用按钮?

表单重置按钮是否触发选择元素的onChange事件?

R中的闪亮:单击按钮后如何将输入值设置为NULL?

错误:[on_request_read] 连接由 R 闪亮中的对等方重置