r - 如何使actionButton仅在所有输入都以R Shiny 形式给出时才起作用?

标签 r web-applications shiny user-input action-button

目前,我的 actionButton 正在通过下拉列表接收用户输入,然后当按下 actionButton 时,它会将其输出到 csv 文件。 但是,如果用户仅输入 5 个下拉列表中的 2 个并按下操作按钮,这仍然会转到 csv 文件。如果给出所有输入,我怎样才能使它只接受actionButton?我正在使用observeEvent()。

最佳答案

您可以创建一个名为 Submit 的 ActionButton,单击该按钮后您可以执行代码,但在代码之前给出一个 if 条件来检查是否有任何输入给予。

ui中使用:

actionButton(inputId = "SubmitButton",label = "Submit")

服务器中您可以使用:

 observeEvent(input$SubmitButton,
{
 if(input$one!=""&&input$two!=""&&!is.na(input$three))
   {
    ###You't code involving the multiple inputs
   }
 }

现在,只有按下“提交”按钮并且输入不为空或 NULL(根据您的需要),代码才会起作用。我建议您在服务器部分之前将输入初始化为 "" ,这样才能正常工作。在选择 input$name!=""! 时要小心! is.na(输入$名称).

除此之外,如果他/她没有填写所有输入,您可以弹出一个窗口,并要求他/她通过在服务器中创建一个showModal来填写所有内容 session 。

observeEvent(input$SubmitButton,
    {
     if(input$one!=""&&input$two!=""&&!is.na(input$three))
       {
        ###You't code involving the multiple inputs
       }
     else
       {
         showModal(modalDialog(title ="Warning!!!", "Please fill all the fields before you click the Submit buttion!!!"))
       }
     }

希望这有帮助!!!

关于r - 如何使actionButton仅在所有输入都以R Shiny 形式给出时才起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50407728/

相关文章:

css - flexdashboard布局中的两个侧边栏

r - 比较测试性能

r - 从单独列的单词元素创建列

language-agnostic - 我应该隐藏主键值吗?

web-applications - 为最终用户控制 Web 应用程序版本的一般策略有哪些?

r - 如何在 Shiny App (R) 中向 SideBarPanel 添加 css 标签

r - 构造一个有条件地取某个值直到满足另一个条件的变量

r - 使用带有 quosures 的 select

javascript - 防止android默认浏览器在横向模式下缩放

css - R Shiny - 两个导航栏页面,每一个都有自定义和标准颜色