I want to send multiple events to liveview on the form submittion. I am chaining two JS.push
commands, but the server recieves only first_event
.
<.form :let={f} for={%{}} phx-submit={JS.push("first_event") |> JS.push("second_event")}>
<button type="submit">Submit</button>
</.form>
Event handlers:
def handle_event("first_event", _params, socket) do
dbg("Recieved first event")
{:noreply, socket}
end
def handle_event("second_event", _params, socket) do
dbg("Recieved second event")
{:noreply, socket}
end
Interesting thing is that if I click on the button which has phx-click
, both events are send to the server.
<button phx-click={JS.push("first_event") |> JS.push("second_event")}>button</button>
Why does phx-submit
behave differently?