Как заставить actionButton работать только тогда, когда все входные данные даны в R блестящем? - PullRequest
0 голосов
/ 18 мая 2018

В настоящее время мой actionButton принимает пользовательский ввод через выпадающие списки, а затем при нажатии actionButton выводит его в CSV-файл.Однако, если пользователь вводит только 2 из 5 выпадающих списков и нажимает actionButton, он все равно перейдет в файл csv.Как я могу сделать так, чтобы он принимал actionButton, только если все входные данные даны?Я использую Наблюдение за событием ().

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

если вы используете пакеты shinyjs, вы можете деактивировать кнопку, когда не все входы выдаются с чем-то вроде этого.

observe(
    {
     if(input$one!=""&&input$two!=""&&!is.na(input$three))
       {
        enable("SubmitButton")
       }
     else
       {
         disable("SubmitButton")
       }
     })

просто помните, что вы должны включить useShinyjs() где-то в вашем интерфейсе.

Надеюсь, это поможет!

0 голосов
/ 18 мая 2018

Вы можете создать ActionButton с именем Submit, после нажатия этой кнопки вы можете выполнить код, но перед тем, как код даст условие 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).

В дополнение к этому вы можете иметь всплывающее окно, еслион / она не заполнил все поля ввода и попросил его / ее заполнить все, создав showModal в сеансе server.

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!!!"))
       }
     }

Надеюсь, это поможет !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...