diff --git a/assets/js/events.js b/assets/js/events.js index 8c52492f5..164f45737 100644 --- a/assets/js/events.js +++ b/assets/js/events.js @@ -82,4 +82,16 @@ export function registerGlobalEventHandlers() { target.dispatchEvent(new Event("click", { bubbles: true })); } }); + + // Ignore submit events on elements with phx-nosubmit + window.addEventListener( + "submit", + (event) => { + if (event.target.hasAttribute("phx-nosubmit")) { + event.preventDefault(); + event.stopPropagation(); + } + }, + { capture: true } + ); } diff --git a/lib/livebook_web/live/file_select_component.ex b/lib/livebook_web/live/file_select_component.ex index c7d3cf6f2..a2fe6d153 100644 --- a/lib/livebook_web/live/file_select_component.ex +++ b/lib/livebook_web/live/file_select_component.ex @@ -86,7 +86,7 @@ defmodule LivebookWeb.FileSelectComponent do class="grow" phx-change="set_path" phx-submit={if @submit_event, do: "submit"} - onsubmit={unless @submit_event, do: "return false"} + phx-nosubmit={!@submit_event} phx-target={@myself} > diff --git a/lib/livebook_web/live/session_live/export_live_markdown_component.ex b/lib/livebook_web/live/session_live/export_live_markdown_component.ex index 753bf94fc..a07bb4181 100644 --- a/lib/livebook_web/live/session_live/export_live_markdown_component.ex +++ b/lib/livebook_web/live/session_live/export_live_markdown_component.ex @@ -27,7 +27,7 @@ defmodule LivebookWeb.SessionLive.ExportLiveMarkdownComponent do ~H"""