i-n-g-m-a-r
Suppose one defines a simple form like this:
<.simple_form :let={f} for={@changeset} focus={@focus}>
Then how would one collect the @focus value when defining an input:
<.input field={f[:name]} type="text" focus={@focus} />
Annotating simple_form/1 does not work.
attr :focus, :atom, default: nil
<.form :let={f} for={@for} as={@as} focus={@focus} {@rest}>
Phoenix.HTML.Form does not pass @focus or any custom value along.
Using @rest results in @focus being output as a form attribute.
So how does one trickle down key={value} ?
Many thanks.
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
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
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
Is there any way to avoid the Hologram compiler running when using iex? It seems like the front-end code could potentially be disregarded...
New
** (ArgumentError) expected :max_attempts to be a positive integer, got: {:@, [line: 10, column: 19], [{:max_attempts, [line: 10, column:...
New
Hello folks!
So at work, we are seeing some situations where we have to define some “fixed” strings that are used across the codebase in...
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
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
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
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
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)
LostKobrakai
You don’t need to pass the value to
<.simple_form>in the first place. You can pass it to the input directly and that’s enough.i-n-g-m-a-r
Thanks for your reply.
Suppose the initial value of @focus is a return value:
focus={get_focus(@changeset, [:field_b, :field_c, :field_a])}A view implements
get_focus/2because the template knows the order of the fields to be rendered.It seems like the
key={value}syntax would be a nice (or logical?) way to make the @focus assign available downstream.Where would you execute
get_focus/2and remember it’s return value?LostKobrakai
The individual inputs are not “downstream” from
<.simple_form>. The inner html is another input to<.simple_form>.You don’t want to execute functions in templates if possible (when using LV), so rather calculate it in advance.
i-n-g-m-a-r
Thank you.
You would agree that
<.celebrate name={"Genevieve"} age={34} />makes@nameand@ageavailable “downstream”?With it we could do something like
<.stuff name={@name} />(or maybe<.input key={@value} />).The function definition should allow for “passing down” such assigns.
So when a function does not allow custom attributes the
key={value}thing does not work.I guess Phoenix.HTML.Form would have to support customization.
Something like
assign-focus="get_focus(@changeset, [:field_b, :field_c, :field_a])".About calculating in advance.
That would mean the controller would have to know about the ordering of the inputs to be rendered.
LostKobrakai
It makes the values available to
celebrate/1, yes.Here anything being
[…]however is just another input tocelebrate/1, similar to age and name. It won’t get access to any additional assigns. Using:let={…}is the only way forcelebrate/1to pass data back to its body/slots.i-n-g-m-a-r
Thanks again.
So in conclusion as long as we are in control of a function we can define
key={value}syntax.When using
form/1or other functions out of our control we cannot use it.Unless we do weird stuff like:
<.simple_form :let={f} for={@changeset} data-focus={get_focus(@changeset, [:field_b, :field_c, :field_a])}>and
<input type={@type} autofocus={has_focus?(@__given__)}>and
and accept a data-focus attribute on our form.