Working Example of Phoenix Built in Form Component: Difference between revisions
From ElixirBlocks
No edit summary |
No edit summary |
||
| (One intermediate revision by the same user not shown) | |||
| Line 10: | Line 10: | ||
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