禁用confirmSweetAlert中的确认按钮
我试图禁用confirmSweetAlert中的确认按钮,除非selectizeInput中有一些输入。似乎有使用Javascript的解决方案,例如禁用confirmSweetAlert中的确认按钮,r,shiny,sweetalert2,shinyjs,shinywidgets,R,Shiny,Sweetalert2,Shinyjs,Shinywidgets,我试图禁用confirmSweetAlert中的确认按钮,除非selectizeInput中有一些输入。似乎有使用Javascript的解决方案,例如swal.disableconfirbutton()和document.getElementsByClassName().disabled=true,但当我在shinyjs::runjs下运行它们时,它们似乎不起作用。有没有解决这个问题的办法?以下是我的示例代码: shinyApp( ui <- fluidPage( action
swal.disableconfirbutton()
和document.getElementsByClassName().disabled=true
,但当我在shinyjs::runjs
下运行它们时,它们似乎不起作用。有没有解决这个问题的办法?以下是我的示例代码:
shinyApp(
ui <- fluidPage(
actionButton("button", "Show Sweet Alert!")
),
server <- function(input, output, session) {
observeEvent(input$button, {
confirmSweetAlert(
session = session,
inputId = "letterSelect",
title = "Select a Letter!",
type = "info",
text = tags$div(
h4("Please select from the options below then press 'Confirm'.", align = "center"),
selectizeInput(
inputId = "letters",
label = NULL,
choices = c("A", "B", "C"),
options = list(placeholder = "None selected."),
multiple = TRUE,
width = '100%')
),
closeOnClickOutside = FALSE
)
})
}
)
shinyApp(
ui这似乎有效:
library(shiny)
library(shinyWidgets)
library(shinyjs)
shinyApp(
ui <- fluidPage(
useShinyjs(),
actionButton("button", "Show Sweet Alert!")
),
server <- function(input, output, session) {
observeEvent(input$button, {
confirmSweetAlert(
session = session,
inputId = "letterSelect",
title = "Select a Letter!",
type = "info",
text = tags$div(
h4("Please select from the options below then press 'Confirm'.", align = "center"),
selectizeInput(
inputId = "letters",
label = NULL,
choices = c("A", "B", "C"),
options = list(placeholder = "None selected."),
multiple = TRUE,
width = '100%')
),
closeOnClickOutside = FALSE
)
runjs("Swal.getConfirmButton().setAttribute('disabled', '');")
})
observe({
if(is.null(input$letters)){
runjs("Swal.getConfirmButton().setAttribute('disabled', '');")
}else{
runjs("Swal.getConfirmButton().removeAttribute('disabled');")
}
})
}
)
库(闪亮)
图书馆(shinyWidgets)
图书馆(shinyjs)
shinyApp(
ui非常感谢您的回复!我运行了这段代码,但仍然没有收到禁用的“确认”按钮。我用上面提到的其他变体替换了JS代码,但它似乎仍然不起作用。@m.yoshih您使用的ShinyWidget版本是什么?感谢您指出这一点;我有版本0.4.8。它现在与更新的版本一起工作尽管Selectize下拉菜单出现在按钮后面,但仍然是0.5.1版本的版本。有没有办法绕过按钮后面的下拉菜单?我想用“cancel”按钮做同样的事情。所以我在这里写的是在sweet alert上禁用cancel按钮,以防其他人需要它.setAttribute('disabled','');”)