Working Example of Phoenix Built in Form Component: Difference between revisions
From ElixirBlocks
No edit summary |
No edit summary |
||
(2 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))} | |||
end | end | ||
def handle_event("save", params, socket) do | def handle_event("save", params, socket) do | ||
IO.inspect params | |||
{:noreply, socket} | |||
end | 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