单击 actionButton 后将 css 添加到元素
Adding css to an element after clicking on actionButton
我正在尝试使用 shiny 自定义登录页面。我已经包含了一个像这样的文本输入 textInput("login_username", "Username")
并且我想要做的是当 Username
不在数据库中时 output$login_username
的边框将变成红色。那么如何在事件后将 CSS 添加到元素。
假设这是我的 if
句子:
if(is_validate){ /* action to do */ }
else { output$login_username <- /* action that i'm looking for */ }
这是如何在 shinyjs
包的帮助下添加颜色的小示例,我还在右下角添加了一条消息通知:
library(shiny)
library(shinyjs)
allowedusers <- c("Pork_Chop","BKenz")
jsCode <- "shinyjs.TextCol = function(params){$('#login_username').css('background', params);}"
# For border color use below
jsCode <- "shinyjs.TextCol = function(params){$('#login_username').css('border-color', params);}"
ui <- fluidPage(
useShinyjs(),
extendShinyjs(text = jsCode),
textInput("login_username", "Username"),
actionButton("Login","Login")
)
server <- function(input, output,session) {
observeEvent(input$Login,{
req(input$login_username!="")
if(!(input$login_username %in% allowedusers)){
js$TextCol("red")
showNotification("user doesnt exists",type="warning")
}
else{
js$TextCol("white")
}
})
}
shinyApp(ui = ui, server = server)
我正在尝试使用 shiny 自定义登录页面。我已经包含了一个像这样的文本输入 textInput("login_username", "Username")
并且我想要做的是当 Username
不在数据库中时 output$login_username
的边框将变成红色。那么如何在事件后将 CSS 添加到元素。
假设这是我的 if
句子:
if(is_validate){ /* action to do */ }
else { output$login_username <- /* action that i'm looking for */ }
这是如何在 shinyjs
包的帮助下添加颜色的小示例,我还在右下角添加了一条消息通知:
library(shiny)
library(shinyjs)
allowedusers <- c("Pork_Chop","BKenz")
jsCode <- "shinyjs.TextCol = function(params){$('#login_username').css('background', params);}"
# For border color use below
jsCode <- "shinyjs.TextCol = function(params){$('#login_username').css('border-color', params);}"
ui <- fluidPage(
useShinyjs(),
extendShinyjs(text = jsCode),
textInput("login_username", "Username"),
actionButton("Login","Login")
)
server <- function(input, output,session) {
observeEvent(input$Login,{
req(input$login_username!="")
if(!(input$login_username %in% allowedusers)){
js$TextCol("red")
showNotification("user doesnt exists",type="warning")
}
else{
js$TextCol("white")
}
})
}
shinyApp(ui = ui, server = server)