tadasajon
How do I disable a button conditionally in HEEX?
I want to disable an HTML button conditionally in a HEEX template. Currently I am doing this:
<%= if @valid_sheet do %>
<button phx-click="save" name="save" value={@sheet_id}>
Save
</button>
<% else %>
<button phx-click="save" name="save" value={@sheet_id} disabled>
Save
</button>
<% end %>
But I would rather just write a button into my html code only once and merely add the disabled attribute conditionally, as follows:
<button phx-click="save" name="save" value={@sheet_id} {if not @valid_sheet, do: "disabled"}>
Save
</button>
But it gives me this error: “Enumerable not implemented for “disabled” of type BitString”
How can I conditionally add an attribute to an html element?
Marked As Solved
tadasajon
I found the answer here: Interpolating boolean attributes in HEEx - #4 by jaimeiniesta
Apologies for not searching more assiduously before asking a question in the forums.
Here is what my HEEX looks like now:
<button phx-click="save" name="save" value={@sheet_id} disabled={not @valid_sheet}>
Save
</button>
This will result in the disabled attribute disappearing entirely (rather than being set as disabled="false"), which is what I wanted.
8
Popular in Questions
Hello everyone,
I try to use an Javascript Event Handler in my root.html.leex file.
Therefore I created a function in the app.js file: ...
New
What is the idiomatic way of matching for not nil in Elixir?
E.g.,
First way:
defp halt_if_not_signed_in(conn, signed_in_account) when...
New
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New
I will often find my self writing things similar to:
case some_value do
nil -> something()
"" -> something()
_ -> someth...
New
I am using the Starship cross-shell prompt – it seems pretty nice, but I get some errors:
[WARN] - (starship::utils): Executing command ...
New
lets say i have a sample like
a = 20; b = 10;
if (a > b) do
{:ok, "a"}
end
if (a < b) do
{:ok, b}
end
if (a == b) do
{:ok, "eq...
New
I have followed this StackOverflow post to install the specific version of Erlang.
And When I am running mix ecto.setup then getting fol...
New
Why is it that the mnesia database isn’t the most preferred database for use in Elixir/Phoenix?
New
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
Hi there,
I am working with Ecto-Postgresql and I need to call all of the records from a specific table but the table has 40,000 record...
New
Other popular topics
Hi All,
I set a environment variables in dev.exs , like below code.
when i start server, how can i set the ${enable} value?
thanks.
d...
New
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
New
Phoenix 1.4.0 released
Phoenix 1.4 is out! This release ships with exciting new features, most notably
with HTTP2 support, improved deve...
New
Hello all!
I am typing this post from my new MacBook Pro with the M1 chip. I’m loving it so far, and will probably use it as my daily dr...
New
I believe there are people here who are dealing with CSV files import on the daily basis, and since Excel is a really popular tool there ...
New
I am trying to figure out how Mix knows whether the environment is test, dev, or prod -- where is this set?
Thanks.
New
Hello everybody,
usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New
Credo is smart enough to check for (something like) this:
assert length(the_list) == 0
with this response:
Checking if an enum is empt...
New
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New
Hello!
Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New







