From 130bcf96ca30dabdacbde15edaeac6f5fe499746 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Brand=C3=A9ho?= Date: Thu, 26 Sep 2024 11:56:59 -0700 Subject: [PATCH] default on_submit in form set to prevent_default (#4005) * default submit forms set to prevent_default * fix tests --- reflex/components/el/elements/forms.py | 5 ++++- tests/units/components/forms/test_form.py | 7 +++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/reflex/components/el/elements/forms.py b/reflex/components/el/elements/forms.py index 29fea357b..1963f8b37 100644 --- a/reflex/components/el/elements/forms.py +++ b/reflex/components/el/elements/forms.py @@ -10,7 +10,7 @@ from jinja2 import Environment from reflex.components.el.element import Element from reflex.components.tags.tag import Tag from reflex.constants import Dirs, EventTriggers -from reflex.event import EventChain, EventHandler +from reflex.event import EventChain, EventHandler, prevent_default from reflex.utils.imports import ImportDict from reflex.vars import VarData from reflex.vars.base import LiteralVar, Var @@ -148,6 +148,9 @@ class Form(BaseHTML): Returns: The form component. """ + if "on_submit" not in props: + props["on_submit"] = prevent_default + if "handle_submit_unique_name" in props: return super().create(*children, **props) diff --git a/tests/units/components/forms/test_form.py b/tests/units/components/forms/test_form.py index 3cbbab3b8..5f3ba2d37 100644 --- a/tests/units/components/forms/test_form.py +++ b/tests/units/components/forms/test_form.py @@ -1,5 +1,5 @@ from reflex.components.radix.primitives.form import Form -from reflex.event import EventChain +from reflex.event import EventChain, prevent_default from reflex.vars.base import Var @@ -15,7 +15,6 @@ def test_render_on_submit(): def test_render_no_on_submit(): - """A form without on_submit should not render a submit handler.""" + """A form without on_submit should render a prevent_default handler.""" f = Form.create() - for prop in f.render()["props"]: - assert "onSubmit" not in prop + assert f.event_triggers["on_submit"] == prevent_default