silverdr
Let’s say there’s a typical form with phx-change="validate" on the form level and there are also some fields in the form, which have phx-change="autocomplete" on input level. The problem I experience is that form level change event is not triggered whenever input level one is.
What is the correct way of handling such situations?
Trending in Questions
I having some trouble figuring out if I have set myself too strict of standards for my production server. Currently I can handle 75% of r...
New
Documentation
While reading the Scoped Routes section, I noticed that the documentation currently refers to a problem without explainin...
New
Hello,
I’m trying to build a basic Phoenix web-app, and I’d like to use Tailwind.
However, when I launch mix phx.server, I get an error...
New
Hi everyone,
I am toying with the idea of building a “match maker” for giving personal help to people that wants to start coding.
I sta...
New
I recently noticed that Elixir’s Logger defaults its primary log level to :debug when no :logger, :level application configuration is pre...
New
I’m working on a small exercise involving update_in/3, and I came up with this solution:
data = %{
name: "Periodic Table",
category:...
New
I’ve got trouble wrapping my head around the order in which functions are called in this snippet (from Phoenix’s authentication):
toke...
New
Other Trending Topics
Edit: 2026 May 15 - This post is archived.
Mob is alive!!
Main docs: mob v0.7.11 — Documentation
A bit of explanation for the slightly c...
New
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
I am happy to introduce the very α version of the new programming language compiled to BEAM.
Welcome Cure.
It has literally three kille...
New
Hobbes is a low-level distributed database for the Elixir programming language.
Hobbes provides a simple, safe, and scalable storage lay...
New
Hi everyone!
The first release candidate for the Expert language server project is now available!
We’ve published a press release detai...
New
A little off-topic, but I feel like people here have a good head on their shoulders.
I used to be quite good at making software. Was luc...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ai
- #ecto-query
- #elixirconf-us
- #blog-post
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #elixirconf-eu
- #api
- #forms
- #metaprogramming
- #hex










Showing Posts 1 to 6- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
benwilson512
Can you elaborate as to the purpose of these secondary
phx-changesettings? The form level one will trigger with every change on every input anyway.silverdr
Let’s try… The form-level change is used to validate the whole form and return errors if any. The input-level one is used to pass values for autocompleting a particular field. These are two different events for different purposes and on the input level I immediately know which field triggered the event as only its data is passed. All in all both are needed and only some (like 15% of all) fields need autocompletion while all of them need to pass validation. Therefore it looked natural to me to try triggering
autocompleteonly for those fields, which need it, while triggeringvalidateon all changes. I could probably (?) use form-level for everything and parse-out changed field from the params somehow but I’d prefer to have those contexts separated unless there’s currently no way to make it work (why would that be?).benwilson512
I think what you want is the
"_target"value sent viaphx-changeto handle event. So if you set it at the form level, you can see which input changed via"_target"without any extra wiring.silverdr
Possibly, yes. And instead of
validateandautocompleteas needed there’d have to be something combined likehandle_changewith extra block checking what to do with the event. I. e. whether it was triggered by input requiring autocompletion or not, extracting the value, etc. Doable, of course, even if seemingly far less elegant. Still - why can’t both levels work together? Is it by design for some reason(s)? Or because of some limitations somewhere? Or they actually can but I don’t know how to make them do?codeanpeace
The default generated validation callback just runs a params map through the resource changeset based off the resource struct in the socket assigns. This means it should handle a subset of fields just as well as all the fields. So why not directly call the
validatecallback from theautocompletecallback?These excerpts – and the comments especially – seem relevant from a quick skim through
live_socket.js.https://github.com/phoenixframework/phoenix_live_view/blob/555ccadab0da7104c58cdaa42dac4169ebcd44b7/assets/js/phoenix_live_view/live_socket.js#L830-L859
https://github.com/phoenixframework/phoenix_live_view/blob/555ccadab0da7104c58cdaa42dac4169ebcd44b7/assets/js/phoenix_live_view/live_socket.js#L697-L705
And based off of the LiveView docs on form events, it seems like what you’re seeing is expected behavior.
silverdr
I thought of this too, but this way it would currently break the flow, because
paramscontain only the one, specific input’s data rather than the full form. I’d need to rewrite the rather complex validation handlerI read those docs and it wasn’t clear to me that it is form-level EOR input-level. Now, rereading this again and looking for hints, there is one word that can suggest it to be the case: “own change event” w/o any qualifiers, although still…