Phoenix component does not trigger validate form event

Hello,

with latest liveview, inside a liveview with a form and validate event

some form input tags are in shared regular leex components, when one inputs something, that triggers the validate event round trip, and everything works well

I tried to put inside a phoenix component (not live) a checkbox input and it does not trigger a validate event when I click, so this does not work

<.comp_with checkbox />

inside the inner slot of a phoenix component, a rendered leex component does trigger the validate event
that is, this below works

<.comp1>
<%= render(View, “component.html”, …%>
</.comp1>

and finally if I try to turn the phoenix component into a live component, I cannot put it inside a phoenix component.
this below is not allowed

<.comp1>
<.live_component module=… />
</.comp1>

so it looks like only explicitly rendered components, with render call, trigger the enclosing liveview validate form event, or what’s wrong here ?

Could you maybe share some more code, e.g your complete form and the checkbox component?

Normally the “validate” event should trigger independend of the way the checkbox was added to the form.

1 Like

Thanks

the setup is the following (from a pre 1.6 phoenix)
the liveview is leex and is mounted with live_render(@conn, …) from a regular html.eex template that is called from a controller
then inside the html.leex liveview

<%= form_for :response, @action,[phx_change: :validate, id: “res”], fn f → %>

<%= render ModView, “template.html” %>

<% end %>

ModView is a heex and contains the setup from my previous message
so it is not heex from the very start, maybe that explains

inside ModView, a click in a checkbox inside the component shows no round trip from the form validate event, except if it is in a eex called with explicit <%= render %>