目前,我的 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(输入$名称)
.
除此之外,如果他/她没有填写所有输入,您可以弹出一个窗口,并要求他/她通过在服务器中创建一个
session 。showModal
来填写所有内容
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/