5

在 R/Shiny 中,我想添加一个tooltip来通知用户一个按钮被禁用,因为必填字段未完成。

我可以使用ShinyBS包显示工具提示,但是当按钮被禁用时它似乎不起作用。下面是一个最小的工作示例。

是否有一个简单的修复方法可以让工具提示在 Shiny 中的禁用按钮上工作?

用户界面

library(shinyBS)
library(shiny)
library(shinyjs)


shinyUI(pageWithSidebar(
headerPanel("actionButton test"),
sidebarPanel(
numericInput("n", "N:", min = 0, max = 100, value = 50),
br(),
actionButton("goButton", "Disabled!"),
actionButton("goButton2", "Go!"),
bsTooltip("goButton", "Tooltip broken", placement = "bottom", trigger = "hover",
           options = NULL),
bsTooltip("goButton2", "Tooltip works", placement = "bottom", trigger = "hover",
           options = NULL)
),
 mainPanel(useShinyjs(),
 verbatimTextOutput("nText")
)
))

服务器.R

library(shiny)
library(shinyjs)
library(shinyBS)

shinyServer(function(input, output,session) {

ntext <- eventReactive(input$goButton, {
input$n
})

shinyjs::disable("goButton2")

output$nText <- renderText({
 ntext()
})
})
4

1 回答 1

10

这是解决您的问题的一种方法,而是为您的按钮提供标题:

#rm(list=ls())
library(shinyBS)
library(shiny)
library(shinyjs)

ui <- pageWithSidebar(
  headerPanel("actionButton test"),
  sidebarPanel(numericInput("n", "N:", min = 0, max = 100, value = 50),
    tags$div(style="display:inline-block",title="Tooltip broken",actionButton("goButton", "Disabled!")),
    tags$div(style="display:inline-block",title="Tooltip works",actionButton("goButton2", "Go!"))    
  ),
  mainPanel(useShinyjs(),
            verbatimTextOutput("nText")
  )
)

server <- shinyServer(function(input, output,session) {
  
  ntext <- eventReactive(input$goButton, {input$n})
  shinyjs::disable("goButton2")
  output$nText <- renderText({ntext()})
  
})
shinyApp(ui = ui, server = server)

在此处输入图像描述

于 2016-07-06T07:19:55.413 回答