浏览代码

default on_submit in form set to prevent_default (#4005)

* default submit forms set to prevent_default

* fix tests
Thomas Brandého 7 月之前
父节点
当前提交
130bcf96ca
共有 2 个文件被更改,包括 7 次插入5 次删除
  1. 4 1
      reflex/components/el/elements/forms.py
  2. 3 4
      tests/units/components/forms/test_form.py

+ 4 - 1
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)
 

+ 3 - 4
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