Defines a form that lets the user submit information

Provides a wrapper for Phoenix.HTML.Form.form_for/3. Additionally, adds the form instance that is returned by form_for/3 into the context, making it available to any child input.

All options passed via opts will be sent to form_for/3, for and action can be set directly and will override anything in opts.

@user = {
  "email": "",
  "name": ""

<Form for={{ :user }} change="change" opts={{ autocomplete: "off" }}>
  <Field name="name">
    <div class="control">
      <TextInput value={{ @user["name"] }}/>
  <Field name="email" class="field">
    <div class="control">
      <TextInput value={{ @user["email"] }}/>

<pre>@user = {{ Jason.encode!(@user, pretty: true) }}</pre>

# Public API

Name Description Type Values Default
for Required. Atom or changeset to inform the form data.

action URL to where the form is submitted.

:string "#"
as The server side parameter in which all parameters will be gathered.

method Method to be used when submitting the form.

multipart When true, sets enctype to "multipart/form-data". Required when uploading files.

:boolean false
csrf_token For "post" requests, the form tag will automatically include an input tag with name _csrf_token. When set to false, this is disabled.

errors Keyword list of errors for the form.

opts Keyword list with options to be passed down to Phoenix.HTML.Tag.tag/2.

:keyword []
class Class or classes to apply to the form.