2016-10-21 5 views
1

У меня есть actionButton под названием Ok. Когда пользователь нажимает на эту кнопку, он берет ввод из окна ввода текста и показывает диалоговое окно сообщения bsModal с некоторым сообщением.shiny bsModal close button

Это код:

library(shiny) 
library(shinydashboard) 

ui <- dashboardPage(
    dashboardHeader(), 
    dashboardSidebar(

    textInput("text", "Enter Id:"), 
    box(width = 1, background = 'purple'), 
    actionButton("Ok", "Press Ok",style='padding:8px; font-size:100%') 
), 

    dashboardBody(

    bsModal("modalnew", "Greetings", "Ok", size = "small", 
      textOutput("text1") 
    ) 

    ) 
) 

server <- function(input, output) { 

    observeEvent(input$Ok,{ 

    patid1 <- as.numeric(input$text) 
    print(patid1) 



    if (is.na(patid1) == TRUE) { output$text1 <- renderText("Please enter 
    a valid ID# without alphabets or special characters")} else { 

     #output$text1 <-renderText("") 
     output$text1 <-renderText({paste("You enetered", patid1)}) 
    } 

    }) 

} 

shinyApp(ui, server) 

То, что я пытаюсь сделать, когда пользователь нажимает на кнопку Close на окне bsModal, он должен очистить текст в textInput текстовом поле. Я не знаю, как добавить реактивную функцию в кнопку закрытия в окне сообщений bsModal. Буду признателен за любую оказанную помощь.

ответ

1

Вы не можете сделать это на bsModal, который работает на клиента, но вы можете легко сделать это на сервере:

server <- function(input, output, session) { 

    observeEvent(input$Ok,{ 

    patid1 <- as.numeric(input$text) 

    # Clear input$text 
    updateTextInput(session,"text", value="") 


    if (is.na(patid1) == TRUE) { output$text1 <- renderText("Please enter 
    a valid ID# without alphabets or special characters")} else { 

     output$text1 <-renderText({ 
     paste("You enetered", patid1)}) 
    } 

    }) 

} 

shinyApp(ui, server) 
+0

, что сделает это, большое спасибо :) –