diff --git a/lib/phoenix_html/form.ex b/lib/phoenix_html/form.ex
index 93d8cd2..80b7888 100644
--- a/lib/phoenix_html/form.ex
+++ b/lib/phoenix_html/form.ex
@@ -199,12 +199,26 @@ defmodule Phoenix.HTML.Form do
"""
@spec input_changed?(t, t, field()) :: boolean()
def input_changed?(
- %Form{impl: impl1, id: id1, name: name1, errors: errors1, source: source1} = form1,
- %Form{impl: impl2, id: id2, name: name2, errors: errors2, source: source2} = form2,
+ %Form{
+ impl: impl1,
+ id: id1,
+ name: name1,
+ errors: errors1,
+ source: source1,
+ action: action1
+ } = form1,
+ %Form{
+ impl: impl2,
+ id: id2,
+ name: name2,
+ errors: errors2,
+ source: source2,
+ action: action2
+ } = form2,
field
)
when is_atom(field) or is_binary(field) do
- impl1 != impl2 or id1 != id2 or name1 != name2 or form1.action != form2.action or
+ impl1 != impl2 or id1 != id2 or name1 != name2 or action1 != action2 or
field_errors(errors1, field) != field_errors(errors2, field) or
impl1.input_value(source1, form1, field) != impl2.input_value(source2, form2, field)
end