Working Example of Phoenix Built in Form Component: Difference between revisions
From ElixirBlocks
(Created page with " <source> defmodule AppWeb.PageLive do use AppWeb, :live_view def mount(_params, _session, socket) do {:ok, assign(socket, form: to_form(%{}, as: :my_form))} end def handle_event("save", params, socket) do {:noreply, socket} end def render(assigns) do ~H""" <.form for={@form} phx-change="validate" phx-submit="save"> <.input type="text" field={@form[:username]} /> <.input type="email" field={@form[:email]} />...") |
No edit summary |
||
| (3 intermediate revisions by the same user not shown) | |||
| Line 6: | Line 6: | ||
use AppWeb, :live_view | use AppWeb, :live_view | ||
def mount(_params, _session, socket) do | def mount(_params, _session, socket) do | ||
{:ok, assign(socket, form: to_form(%{}, as: :my_form))} | |||
{:ok, assign(socket, form: to_form(%{}, as: :my_form))} | |||
end | end | ||
def handle_event("save", params, socket) do | def handle_event("save", params, socket) do | ||
IO.inspect params | |||
{:noreply, socket} | |||
end | |||
def handle_event("validate", params, socket) do | |||
IO.inspect params | |||
{:noreply, socket} | |||
end | |||
def render(assigns) do | def render(assigns) do | ||
~H""" | ~H""" | ||
<.form for={@form} phx-change="validate" phx-submit="save"> | <.form for={@form} phx-change="validate" phx-submit="save"> | ||
<.input type="text" field={@form[:username]} /> | |||
<.input type="email" field={@form[:email]} /> | |||
<button>Save</button> | <button>Save</button> | ||
</.form> | </.form> | ||
Latest revision as of 19:02, 18 October 2023
defmodule AppWeb.PageLive do
use AppWeb, :live_view
def mount(_params, _session, socket) do
{:ok, assign(socket, form: to_form(%{}, as: :my_form))}
end
def handle_event("save", params, socket) do
IO.inspect params
{:noreply, socket}
end
def handle_event("validate", params, socket) do
IO.inspect params
{:noreply, socket}
end
def render(assigns) do
~H"""
<.form for={@form} phx-change="validate" phx-submit="save">
<.input type="text" field={@form[:username]} />
<.input type="email" field={@form[:email]} />
<button>Save</button>
</.form>
"""
end
end