Renders an input with label and error messages.
A Phoenix.HTML.FormField may be passed as argument,
which is used to retrieve the input name, id, and values.
Otherwise all attributes may be passed explicitly.
This function accepts all HTML input types, considering that:
type="select" to render a <select> tag Phoenix.Component.live_file_input/1 See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input for more information. Unsupported types, such as hidden and radio, are best written directly in your templates.
<.input field={@form[:email]} type="email" /> <.input name="my-input" errors={["oh no!"]} /> # Password input with visibility toggle <.input type="password" name="password" label="Password" /> # The label can be also passed as a custom_label slot (for checkbox, radio, and toggle only) <.input type="checkbox" name="terms"> <:custom_label>Accept <.a href="#">terms and conditions</.a></:custom_label> </.input> # Password input with help text <.input type="password" name="password" label="Password"> <:help>Password must be at least 8 characters long</:help> </.input>
aria-describedby - Links input with toggle button aria-label - Provides context for the toggle button aria-pressed - Indicates toggle state aria-controls - Associates toggle with input field autocomplete="current-password" for secure browser password management <form class="gc-full-width"> <.input id="dropdown-single-default" label="Country" name="location[country]" type="dropdown" value={nil} options={[%{label: "Afghanistan", value: "afghanistan"}, %{label: "Albania", value: "albania"}, %{label: "Algeria", value: "algeria"}, %{label: "Angola", value: "angola"}, %{label: "Antarctica", value: "antarctica"}, %{label: "Argentina", value: "argentina"}]} placeholder="Select..." /> </form>
<form class="gc-full-width"> <.input id="dropdown-single-with-prompt" label="Country" name="location[country]" type="dropdown" value={nil} options={[%{label: "Afghanistan", value: "afghanistan"}, %{label: "Albania", value: "albania"}, %{label: "Algeria", value: "algeria"}, %{label: "Angola", value: "angola"}, %{label: "Antarctica", value: "antarctica"}, %{label: "Argentina", value: "argentina"}]} prompt="Select" placeholder="Select..." /> </form>
<form class="gc-full-width"> <.input id="dropdown-single-with-value" label="Country" name="location[country]" type="dropdown" value="algeria" options={[%{label: "Afghanistan", value: "afghanistan"}, %{label: "Albania", value: "albania"}, %{label: "Algeria", value: "algeria"}, %{label: "Angola", value: "angola"}, %{label: "Antarctica", value: "antarctica"}, %{label: "Argentina", value: "argentina"}]} placeholder="Select..." /> </form>
<form class="gc-full-width"> <.input id="dropdown-single-with-options-with-number-value" label="Country" name="location[country]" type="dropdown" value={3} options={[%{label: "Afghanistan", value: 1}, %{label: "Albania", value: 2}, %{label: "Algeria", value: 3}, %{label: "Angola", value: 4}, %{label: "Antarctica", value: 5}, %{label: "Argentina", value: 6}]} placeholder="Select..." /> </form>
<form class="gc-full-width"> <.input id="dropdown-single-with-no-events-to-parent" label="Country" name="location[country]" type="dropdown" value="algeria" options={[%{label: "Afghanistan", value: "afghanistan"}, %{label: "Albania", value: "albania"}, %{label: "Algeria", value: "algeria"}, %{label: "Angola", value: "angola"}, %{label: "Antarctica", value: "antarctica"}, %{label: "Argentina", value: "argentina"}]} placeholder="Select..." phx-change="noop" /> </form>
<.input id="dropdown-single-with-parent-form" label="Country" name="location[country]" type="dropdown" options={[%{label: "Afghanistan", value: "afghanistan"}, %{label: "Albania", value: "albania"}, %{label: "Algeria", value: "algeria"}, %{label: "Angola", value: "angola"}, %{label: "Antarctica", value: "antarctica"}, %{label: "Argentina", value: "argentina"}]} placeholder="Select..." />
<form class="gc-full-width"> <.input id="dropdown-single-with-error" label="Country" name="location[country]" type="dropdown" value="algeria" options={[%{label: "Afghanistan", value: "afghanistan"}, %{label: "Albania", value: "albania"}, %{label: "Algeria", value: "algeria"}, %{label: "Angola", value: "angola"}, %{label: "Antarctica", value: "antarctica"}, %{label: "Argentina", value: "argentina"}]} errors={["Error helper text"]} placeholder="Select..." /> </form>
<form class="gc-full-width"> <.input id="dropdown-single-with-error-details" label="Country" name="location[country]" type="dropdown" value="algeria" options={[%{label: "Afghanistan", value: "afghanistan"}, %{label: "Albania", value: "albania"}, %{label: "Algeria", value: "algeria"}, %{label: "Angola", value: "angola"}, %{label: "Antarctica", value: "antarctica"}, %{label: "Argentina", value: "argentina"}]} errors={["Error helper text"]} placeholder="Select..." show_dropdown_errors /> </form>
<form class="gc-full-width"> <.input disabled id="dropdown-single-disabled" label="Country" name="location[country]" type="dropdown" value="algeria" options={[%{label: "Afghanistan", value: "afghanistan"}, %{label: "Albania", value: "albania"}, %{label: "Algeria", value: "algeria"}, %{label: "Angola", value: "angola"}, %{label: "Antarctica", value: "antarctica"}, %{label: "Argentina", value: "argentina"}]} placeholder="Select..." /> </form>
<form class="gc-full-width"> <.input id="dropdown-single-readonly" label="Country" name="location[country]" type="dropdown" value="algeria" options={[%{label: "Afghanistan", value: "afghanistan"}, %{label: "Albania", value: "albania"}, %{label: "Algeria", value: "algeria"}, %{label: "Angola", value: "angola"}, %{label: "Antarctica", value: "antarctica"}, %{label: "Argentina", value: "argentina"}]} readonly placeholder="Select..." /> </form>
<form class="gc-full-width"> <.input id="dropdown-single-with-disabled-option" label="Country" name="location[country]" type="dropdown" value="algeria" options={[%{label: "Afghanistan", value: "afghanistan"}, %{disabled: true, label: "Albania", value: "albania"}, %{label: "Algeria", value: "algeria"}]} placeholder="Select..." /> </form>
<form class="gc-full-width"> <.input id="dropdown-single-with-icon-in-options" label="Country" name="location[country]" type="dropdown" value="algeria" options={[%{label: "Afghanistan", value: "afghanistan", icon: "plus"}, %{label: "Albania", value: "albania", icon: "plus"}, %{label: "Algeria", value: "algeria", icon: "plus"}]} placeholder="Select..." /> </form>
<form class="gc-full-width"> <.input id="dropdown-single-with-option-with-long-text" label="Country" name="location[country]" type="dropdown" value="long text" options={[%{label: "Really long text Really long text Really long text Really long text Really long text", value: "long text", icon: "plus"}, %{label: "Albania", value: "albania", icon: "plus"}, %{label: "Algeria", value: "algeria", icon: "plus"}]} placeholder="Select..." /> </form>
<form class="gc-full-width"> <.input id="dropdown-single-with-add-new-option" label="Country" name="location[country]" type="dropdown" value="algeria" options={[%{label: "Afghanistan", value: "afghanistan"}, %{label: "Albania", value: "albania"}, %{label: "Algeria", value: "algeria"}, %{label: "Angola", value: "angola"}, %{label: "Antarctica", value: "antarctica"}, %{label: "Argentina", value: "argentina"}]} placeholder="Select..." > <:dropdown_add_new_option> <span>Can't find option?</span> <.a href="/form/dropdown" target="_blank">Add option</.a> </:dropdown_add_new_option> </.input> </form>
<form class="gc-full-width"> <.input id="dropdown-single-with-no-options-and-add-new-option" label="Country" name="location[country]" type="dropdown" value={nil} options={[]} placeholder="Select..." > <:dropdown_add_new_option> <span>Can't find option?</span> <.a href="/form/dropdown" target="_blank">Add option</.a> </:dropdown_add_new_option> </.input> </form>
<form class="gc-full-width"> <.input id="dropdown-single-with-multiple" label="Country" name="location[country][]" type="dropdown" value={[]} options={[%{label: "Afghanistan", value: "afghanistan"}, %{label: "Albania", value: "albania"}, %{label: "Algeria", value: "algeria"}, %{label: "Angola", value: "angola"}, %{label: "Antarctica", value: "antarctica"}, %{label: "Argentina", value: "argentina"}]} placeholder="Select..." multiple /> </form>
<form class="gc-full-width"> <.input id="dropdown-single-with-multiple-and-one-selected" label="Country" name="location[country][]" type="dropdown" value={["afghanistan"]} options={[%{label: "Afghanistan", value: "afghanistan"}, %{label: "Albania", value: "albania"}, %{label: "Algeria", value: "algeria"}, %{label: "Angola", value: "angola"}, %{label: "Antarctica", value: "antarctica"}, %{label: "Argentina", value: "argentina"}]} placeholder="Select..." multiple /> </form>
<form class="gc-full-width"> <.input id="dropdown-single-with-multiple-and-two-selected" label="Country" name="location[country][]" type="dropdown" value={["afghanistan", "albania"]} options={[%{label: "Afghanistan", value: "afghanistan"}, %{label: "Albania", value: "albania"}, %{label: "Algeria", value: "algeria"}, %{label: "Angola", value: "angola"}, %{label: "Antarctica", value: "antarctica"}, %{label: "Argentina", value: "argentina"}]} placeholder="Select..." multiple /> </form>
<form class="gc-full-width"> <.input id="dropdown-single-with-multiple-and-multi-selection-label" label="Country" name="location[country][]" type="dropdown" value={["afghanistan", "albania", "algeria", "angola", "antarctica", "argentina"]} options={[%{label: "Afghanistan", value: "afghanistan"}, %{label: "Albania", value: "albania"}, %{label: "Algeria", value: "algeria"}, %{label: "Angola", value: "angola"}, %{label: "Antarctica", value: "antarctica"}, %{label: "Argentina", value: "argentina"}]} placeholder="Select..." multiple multi_selection_label="All countries" /> </form>
<form class="gc-full-width"> <.input id="dropdown-single-with-multiple-and-multi-selection-label-suffix" label="Country" name="location[country][]" type="dropdown" value={["afghanistan", "albania"]} options={[%{label: "Afghanistan", value: "afghanistan"}, %{label: "Albania", value: "albania"}, %{label: "Algeria", value: "algeria"}, %{label: "Angola", value: "angola"}, %{label: "Antarctica", value: "antarctica"}, %{label: "Argentina", value: "argentina"}]} placeholder="Select..." multiple multi_selection_label_suffix="chosen" /> </form>
<form class="gc-full-width"> <.input id="dropdown-single-with-multiple-selected-and-options-with-number-value" label="Country" name="location[country][]" type="dropdown" value={[1, 2]} options={[%{label: "Afghanistan", value: 1}, %{label: "Albania", value: 2}, %{label: "Algeria", value: 3}, %{label: "Angola", value: 4}, %{label: "Antarctica", value: 5}, %{label: "Argentina", value: 6}]} placeholder="Select..." multiple /> </form>
<form class="gc-full-width"> <.input disabled id="dropdown-single-with-multiple-and-disabled" label="Country" name="location[country][]" type="dropdown" value={["afghanistan"]} options={[%{label: "Afghanistan", value: "afghanistan"}, %{label: "Albania", value: "albania"}, %{label: "Algeria", value: "algeria"}, %{label: "Angola", value: "angola"}, %{label: "Antarctica", value: "antarctica"}, %{label: "Argentina", value: "argentina"}]} placeholder="Select..." multiple /> </form>
<form class="gc-full-width"> <.input id="dropdown-single-with-multiple-and-error" label="Country" name="location[country][]" type="dropdown" value={["afghanistan"]} options={[%{label: "Afghanistan", value: "afghanistan"}, %{label: "Albania", value: "albania"}, %{label: "Algeria", value: "algeria"}, %{label: "Angola", value: "angola"}, %{label: "Antarctica", value: "antarctica"}, %{label: "Argentina", value: "argentina"}]} errors={["Error helper text"]} placeholder="Select..." multiple /> </form>
<form class="gc-full-width"> <.input id="dropdown-single-with-multiple-and-error-details" label="Country" name="location[country][]" type="dropdown" value={["afghanistan"]} options={[%{label: "Afghanistan", value: "afghanistan"}, %{label: "Albania", value: "albania"}, %{label: "Algeria", value: "algeria"}, %{label: "Angola", value: "angola"}, %{label: "Antarctica", value: "antarctica"}, %{label: "Argentina", value: "argentina"}]} errors={["Error helper text"]} placeholder="Select..." multiple show_dropdown_errors /> </form>
<form class="gc-full-width"> <.input id="dropdown-single-with-multiple-and-no-events-to-parent" label="Country" name="location[country][]" type="dropdown" value={["afghanistan", "albania"]} options={[%{label: "Afghanistan", value: "afghanistan"}, %{label: "Albania", value: "albania"}, %{label: "Algeria", value: "algeria"}, %{label: "Angola", value: "angola"}, %{label: "Antarctica", value: "antarctica"}, %{label: "Argentina", value: "argentina"}]} placeholder="Select..." multiple phx-change="noop" /> </form>
<.input id="dropdown-single-with-multiple-and-parent-form" label="Country" name="location[country][]" type="dropdown" value={["afghanistan", "albania"]} options={[%{label: "Afghanistan", value: "afghanistan"}, %{label: "Albania", value: "albania"}, %{label: "Algeria", value: "algeria"}, %{label: "Angola", value: "angola"}, %{label: "Antarctica", value: "antarctica"}, %{label: "Argentina", value: "argentina"}]} placeholder="Select..." multiple />
<form class="gc-full-width"> <.input id="dropdown-single-with-small-caret" label="Country" name="location[country]" type="dropdown" value="algeria" options={[%{label: "Afghanistan", value: "afghanistan"}, %{label: "Albania", value: "albania"}, %{label: "Algeria", value: "algeria"}, %{label: "Angola", value: "angola"}, %{label: "Antarctica", value: "antarctica"}, %{label: "Argentina", value: "argentina"}]} placeholder="Select..." dropdown_caret_size="sm" /> </form>
<form class="gc-full-width"> <.input id="dropdown-single-with-extra-small-caret" label="Country" name="location[country]" type="dropdown" value="algeria" options={[%{label: "Afghanistan", value: "afghanistan"}, %{label: "Albania", value: "albania"}, %{label: "Algeria", value: "algeria"}, %{label: "Angola", value: "angola"}, %{label: "Antarctica", value: "antarctica"}, %{label: "Argentina", value: "argentina"}]} placeholder="Select..." dropdown_caret_size="xs" /> </form>
<form class="gc-full-width"> <.input id="dropdown-single-with-bold-caret" label="Country" name="location[country]" type="dropdown" value="algeria" options={[%{label: "Afghanistan", value: "afghanistan"}, %{label: "Albania", value: "albania"}, %{label: "Algeria", value: "algeria"}, %{label: "Angola", value: "angola"}, %{label: "Antarctica", value: "antarctica"}, %{label: "Argentina", value: "argentina"}]} placeholder="Select..." dropdown_caret_weight="bold" /> </form>
<form class="gc-full-width"> <.input id="dropdown-single-with-small-bold-caret" label="Country" name="location[country]" type="dropdown" value="algeria" options={[%{label: "Afghanistan", value: "afghanistan"}, %{label: "Albania", value: "albania"}, %{label: "Algeria", value: "algeria"}, %{label: "Angola", value: "angola"}, %{label: "Antarctica", value: "antarctica"}, %{label: "Argentina", value: "argentina"}]} placeholder="Select..." dropdown_caret_size="sm" dropdown_caret_weight="bold" /> </form>