Я хотел бы добавить предупреждающее сообщение в мою блестящую боковую панель, если пользователь вводит что-то, что не распознается. Я нашел кое-что очень информативное: Проверьте блестящие вводы и сгенерируйте предупреждение о расположении боковой панели Но это не совсем то, что мне нужно, и я хотел бы услышать, что вы думаете. Ниже мой код
library(shiny)
ui <- dashboardPage(
dashboardHeader(),
dashboardSidebar(
selectizeInput('email', 'Email', c("NYC@gmail.com", "LA@gmail.com","SF@gmail.com"), multiple = FALSE,
options = list(
placeholder = 'Email addresss',
onInitialize = I('function() { this.setValue(""); }')
)),
uiOutput('email_text')
),
dashboardBody()
)
server <- function(input, output) {
output$email_text <-
renderUI({
if(input$email == ""){
return(p("Please add your gmail e-mail address."))
}
#Update: Below checks for "gmail" - I would something to search list and return.
if(!grepl("gmail", input$email)){
return(p("Your email is not a gmail e-mail address!"))
}
})
}
shinyApp(ui = ui, server = server)
Текущий выбор боковой панели хорошо работает для распознавания формата электронной почты, пока я выбираю из выпадающего списка
Однако, чтоЯ также хочу добавить, что если я ввожу что-то, что не ожидается (не в списке, указанном), система может зафиксировать это и предупредить меня (например, «Ваш адрес электронной почты не является ожидаемым адресом электронной почты!»). В настоящее время, если я просто ввожу что-то, чего нет в списке, система ничего не делает:
Я чувствую, что по сравнению с сообщением, которое я упомянул выше, моя версия имеет проблемы сфункция selectizeInput. Он предназначен для получения элементов из списка, а не всего, что пользователь вводит. Есть ли способ обойти это? Я пытаюсь использовать validate (), но безуспешно.
Большое спасибо заранее за вашу помощь!