如何使 actionButton 仅在所有输入都以 R shiny 给出时才起作用?
How to make actionButton only work when all inputs are given in R shiny?
目前我的 actionButton 正在通过下拉列表接收用户输入,然后在按下 actionButton 时将其输出到 csv 文件。
但是,如果用户仅输入 5 个下拉列表中的 2 个并按下 actionButton,这仍将转到 csv 文件。如果给出所有输入,我怎样才能让它只接受 actionButton?我正在使用 observeEvent()。
您可以创建一个名为 Submit 的 ActionButton
,单击该按钮后您可以执行代码,但在代码之前给出一个 if
条件以检查是否提供了任何输入。
在ui
中使用:
actionButton(inputId = "SubmitButton",label = "Submit")
在server
中你可以使用:
observeEvent(input$SubmitButton,
{
if(input$one!=""&&input$two!=""&&!is.na(input$three))
{
###You't code involving the multiple inputs
}
}
现在,只有按下提交按钮并且输入不为空或 NULL
根据您的需要,代码才会起作用。我建议您在服务器部分之前将输入初始化为 ""
,这样它就可以工作 选择 input$name!=""
或 !is.na(input$name)
.
时要小心
除此之外,如果 he/she 没有填写所有输入,您可以弹出一个窗口,并要求 him/her 通过在 [=] 中创建 showModal
来填写所有内容16=]届会.
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!!!"))
}
}
希望对您有所帮助!!!
如果您使用软件包 shinyjs
,您可以在并非所有输入都提供类似这样的内容时停用该按钮。
observe(
{
if(input$one!=""&&input$two!=""&&!is.na(input$three))
{
enable("SubmitButton")
}
else
{
disable("SubmitButton")
}
})
请记住,您必须在 ui 的某处包含 useShinyjs()
。
希望对您有所帮助!
目前我的 actionButton 正在通过下拉列表接收用户输入,然后在按下 actionButton 时将其输出到 csv 文件。 但是,如果用户仅输入 5 个下拉列表中的 2 个并按下 actionButton,这仍将转到 csv 文件。如果给出所有输入,我怎样才能让它只接受 actionButton?我正在使用 observeEvent()。
您可以创建一个名为 Submit 的 ActionButton
,单击该按钮后您可以执行代码,但在代码之前给出一个 if
条件以检查是否提供了任何输入。
在ui
中使用:
actionButton(inputId = "SubmitButton",label = "Submit")
在server
中你可以使用:
observeEvent(input$SubmitButton,
{
if(input$one!=""&&input$two!=""&&!is.na(input$three))
{
###You't code involving the multiple inputs
}
}
现在,只有按下提交按钮并且输入不为空或 NULL
根据您的需要,代码才会起作用。我建议您在服务器部分之前将输入初始化为 ""
,这样它就可以工作 选择 input$name!=""
或 !is.na(input$name)
.
除此之外,如果 he/she 没有填写所有输入,您可以弹出一个窗口,并要求 him/her 通过在 [=] 中创建 showModal
来填写所有内容16=]届会.
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!!!"))
}
}
希望对您有所帮助!!!
如果您使用软件包 shinyjs
,您可以在并非所有输入都提供类似这样的内容时停用该按钮。
observe(
{
if(input$one!=""&&input$two!=""&&!is.na(input$three))
{
enable("SubmitButton")
}
else
{
disable("SubmitButton")
}
})
请记住,您必须在 ui 的某处包含 useShinyjs()
。
希望对您有所帮助!