Get value from different element without form

Is there a way to get value of element by click event on another element without using form for example

<input id="input1" />
<button type="button" :on-click="next" />

by clicking the button I pass value of input1 as param or access it somehow.

as far as I know only by using form and submit I can get input values or is there another way?

Javascript can do that kind of interactivity…

I think there is a typo on :on-click.

You can use the Phoenix.HTML functions without form data. Never used that with a button, but as I understand the docs it should work.

This does not seem to work!

The idea was this:

<form action="" phx-change="changed">
  <%= text_input :user, :inp_1 %>
  <%= text_input :user, :inp_2 %>
  <%= submit :user %> <!-- not possible -->

When I change one of the inputs I get these params for "changed"

  "_target" => ["user", "inp_2"],
  "user" => %{"inp_1" => "test 1", "inp_2" => "test 2"}

But you can’t trigger changed with a button.


Without form data
Sometimes we may want to generate a text_input/3 or any other tag outside of a form. The functions in this module also support such usage by simply passing an atom as first argument instead of the form.

is not applicable to submit

1 Like

Thanks for trying, I guess the only solution is using JS hooks :pensive: