File tree 2 files changed +12
-6
lines changed 2 files changed +12
-6
lines changed Original file line number Diff line number Diff line change 13
13
from reactpy_django .forms .transforms import (
14
14
convert_html_props_to_reactjs ,
15
15
convert_textarea_children_to_prop ,
16
- ensure_input_elements_are_controlled ,
17
16
intercept_anchor_links ,
18
17
set_value_prop_on_select_element ,
18
+ transform_value_prop_on_input_element ,
19
19
)
20
20
from reactpy_django .forms .utils import convert_boolean_fields , convert_multiple_choice_fields
21
21
from reactpy_django .types import FormEvent
@@ -122,7 +122,7 @@ def on_submit_callback(new_data: dict[str, Any]):
122
122
convert_html_props_to_reactjs ,
123
123
convert_textarea_children_to_prop ,
124
124
set_value_prop_on_select_element ,
125
- ensure_input_elements_are_controlled ,
125
+ transform_value_prop_on_input_element ,
126
126
intercept_anchor_links ,
127
127
* extra_transforms ,
128
128
strict = False ,
Original file line number Diff line number Diff line change @@ -46,11 +46,17 @@ def set_value_prop_on_select_element(vdom_tree: VdomDict) -> VdomDict:
46
46
return vdom_tree
47
47
48
48
49
- def ensure_input_elements_are_controlled (vdom_tree : VdomDict ) -> VdomDict :
49
+ def transform_value_prop_on_input_element (vdom_tree : VdomDict ) -> VdomDict :
50
50
"""Adds an onChange handler on form <input> elements, since ReactJS doesn't like uncontrolled inputs."""
51
- vdom_tree .setdefault ("eventHandlers" , {})
52
- if vdom_tree ["tagName" ] == "input" and "onChange" not in vdom_tree ["eventHandlers" ]:
53
- vdom_tree ["eventHandlers" ]["onChange" ] = EventHandler (to_event_handler_function (_do_nothing_event ))
51
+ # vdom_tree.setdefault("eventHandlers", {})
52
+ # vdom_tree.setdefault("attributes", {})
53
+ # if vdom_tree["tagName"] == "input" and "onChange" not in vdom_tree["eventHandlers"]:
54
+ # vdom_tree["eventHandlers"]["onChange"] = EventHandler(to_event_handler_function(_do_nothing_event))
55
+ # vdom_tree["attributes"].setdefault("value", "")
56
+
57
+ vdom_tree .setdefault ("attributes" , {})
58
+ if vdom_tree ["tagName" ] == "input" :
59
+ vdom_tree ["attributes" ].setdefault ("defaultValue" , vdom_tree ["attributes" ].pop ("value" , "" ))
54
60
55
61
return vdom_tree
56
62
You can’t perform that action at this time.
0 commit comments