Working Example of Phoenix Built in Form Component: Difference between revisions

From ElixirBlocks
Jump to: navigation, search
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
    {:noreply, socket}
    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="text" field={@form[:username]} />
        <.input type="email" field={@form[:email]} />
          <.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