@@ -64,6 +64,7 @@ defmodule Phoenix.HTML.Form do
64
64
automatically show up as selected in the form.
65
65
66
66
### A note on `:errors`
67
+
67
68
Even if `changeset.errors` is non-empty, errors will not be displayed in a
68
69
form if [the changeset
69
70
`:action`](https://hexdocs.pm/ecto/Ecto.Changeset.html#module-changeset-actions)
@@ -278,13 +279,13 @@ defmodule Phoenix.HTML.Form do
278
279
field_as_string = Atom . to_string ( field )
279
280
280
281
{ :ok ,
281
- % Phoenix.HTML.FormField {
282
- errors: Keyword . get_values ( errors , field ) ,
283
- form: form ,
284
- id: input_id ( form , field_as_string ) ,
285
- name: input_name ( form , field_as_string ) ,
286
- value: input_value ( form , field_as_string )
287
- } }
282
+ % Phoenix.HTML.FormField {
283
+ errors: Keyword . get_values ( errors , field ) ,
284
+ form: form ,
285
+ id: input_id ( form , field_as_string ) ,
286
+ name: input_name ( form , field_as_string ) ,
287
+ value: input_value ( form , field_as_string )
288
+ } }
288
289
end
289
290
290
291
def get ( % Form { } , field ) do
@@ -378,15 +379,16 @@ defmodule Phoenix.HTML.Form do
378
379
"""
379
380
@ spec input_changed? ( t , t , atom ) :: boolean ( )
380
381
def input_changed? (
381
- % Form { impl: impl1 , errors: errors1 , source: source1 } = form1 ,
382
- % Form { impl: impl2 , errors: errors2 , source: source2 } = form2 ,
382
+ % Form { impl: impl1 , id: id1 , name: name1 , errors: errors1 , source: source1 } = form1 ,
383
+ % Form { impl: impl2 , id: id2 , name: name2 , errors: errors2 , source: source2 } = form2 ,
383
384
field
384
385
)
385
386
when is_atom ( field ) do
386
387
as_string = Atom . to_string ( field )
387
388
388
- impl1 == impl2 and Keyword . get_values ( errors1 , field ) == Keyword . get_values ( errors2 , field ) and
389
- impl1 . input_value ( source1 , form1 , as_string ) == impl2 . input_value ( source2 , form2 , as_string )
389
+ impl1 != impl2 or id1 != id2 or name1 != name2 or
390
+ Keyword . get_values ( errors1 , field ) != Keyword . get_values ( errors2 , field ) or
391
+ impl1 . input_value ( source1 , form1 , as_string ) != impl2 . input_value ( source2 , form2 , as_string )
390
392
end
391
393
392
394
@ doc """
0 commit comments