首页 > 解决方案 > 只要电子邮件地址不正确,就禁用按钮 R Shiny

问题描述

我创建了一个闪亮的应用程序,并配置了一个“发送”按钮以禁用,直到设置完成。只要电子邮件地址未经验证,我想设置相同的内容。我不确定我的代码:

 #-------- DISABLED SEND BUTTON --------#
      observe({
        if(is.null(input$zip) || input$zip == ""){
          disable("send")
        } else if(is.null(input$indice) || input$indice == ""){
          disable("send")
        } else if(!grepl("\\<[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}\\>", input$mail)){
          disable("send")
        }
        else{
          enable("send")
        }

  })

标签: rshiny

解决方案


其他人的简单示例:

library(shiny)
library(shinyjs)

ui <- fluidPage(
    useShinyjs(),
    textInput('mail', 'mail'),
    actionButton("send", "send")
)

server <- function(input, output) {
    observe({
        #if(is.null(input$zip) || input$zip == ""){
        #    disable("send")
        #} else if(is.null(input$indice) || input$indice == ""){
        #    disable("send")
        #} else 
        if(!grepl("\\<[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}\\>", input$mail)){
            disable("send")
        }
        else{
            enable("send")
        }
    })
}

shinyApp(ui, server)

推荐阅读