formInput: Form inputs

View source: R/input-form.R

formInputR Documentation

Form inputs

Description

Form inputs are a new reactive input. Form inputs are an alternative to shiny's submit buttons. A form input is comprised of any number of inputs. The value of these inputs will not change until a form submit button within the form input is clicked. A form input's reactive value depends on the clicked form submit button. This allows you to distinguish between different form submission types, think "login" versus "register".

A form submit button, formSubmit(), is a special type of button used to control form input submission. A form input and its child reactive inputs will never update if a form submit button is not included in ... passed to formInput().

Usage

formInput(..., id, inline = FALSE)

formSubmit(label, value = label, ...)

updateFormInput(id, submit = FALSE, session = getDefaultReactiveDomain())

Arguments

...

Any number of unnamed arguments passed as child elements to the parent form element or named arguments passed as HTML attributes to the parent element. At least one formSubmit() must be included.

id

A character string specifying the id of the reactive input.

inline

One of TRUE or FALSE, if TRUE the form and its child elements are rendered in a horizontal row, defaults to FALSE. On small viewports, think mobile device, inline intentionally has no effect and the form will span multiple lines.

label

A character string specifying the label of the form submit button.

value

A character string specifying the value of the form submit button and the value of the form input when the button is clicked, defaults to label.

submit

One of TRUE or FALSE or a character string specifying whether to trigger a form submission, defaults to FALSE. If a character string, the form is submitted and the reactive value passed is the character string specified.

session

A reactive context, defaults to getDefaultReactiveDomain().

Details

Getting started

card(
  .style %>%
    border("info") %>%
    width(50),
  header = "Please pick a flavor",
  formInput(
    id = "form1",
    formGroup(
      label = "Ice creams",
      radioInput(
        id = "flavor",
        choices = c("Mint", "Moose tracks", "Marble"),
      )
    ),
    formSubmit(
      .style %>% background("info"),
      label = "Make choice",
      value = "choice"
    )
  )
)
Please pick a flavor

Inline forms

When inline is TRUE you may want to adjust the right margin of each child element for viewports larger than mobile, margin(right = c(sm = 2)), see margin(). You only need to apply extra space for larger viewports because inline forms do not take effect on small viewports.

See Also

Other inputs: buttonGroupInput(), buttonInput(), checkbarInput(), checkboxInput(), chipInput(), fileInput(), listGroupInput(), menuInput(), navInput(), radioInput(), radiobarInput(), rangeInput(), selectInput(), textInput()


nteetor/yonder documentation built on June 8, 2022, 1:36 p.m.